欢迎光临散文网 会员登陆 & 注册

Java:swing图书管理系统(详细个人注释版)Object类详解(1)

2020-04-06 19:53 作者:诗书画唱  | 我要投稿



package swingPackage;


public class DiaoYongFangFa {

public static void main(String[] args) {

/* swing类 */

new swingClass();

/* JTable界面 */

// new JTableJieMian();


}

}


package swingPackage;


import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;


import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JRadioButton;

import javax.swing.JTextArea;

import javax.swing.JTextField;

///*每一个事件源需要一个监听器(ActionListener)

//ActionListener用于接收操作事件的侦听器接口。对处理操作事件的类可以实现此接口,

//而使用该类创建的对象可使用组件的 addActionListener 方法向该组件注册。

//在发生操作事件时,调用该对象的 actionPerformed 方法。

//接口focusListener的用于接收键盘焦点事件。过程焦点事件的类需要实现这个接口。

//implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。

//实现一个接口,必须实现接口中的所有方法。

//接口可以被多重实现(implements),抽象类只能被单一继承(extends)*/


class shijian implements ActionListener, FocusListener {


static swingClass d = null;


/* 下面的是构造方法,无void */


public shijian(swingClass dl) {


d = dl;


}


@Override

/*

* actionperformed方法是ActionListener监听事件中的一个重写方法,

* 如果要求按钮执行一些动作,可以在这个方法中添加、修改、删除以及判断。

*/

/*

* // * actionPerformed按钮单击方法。public void actionPerformed(ActionEvent e) //

* * 这是接口ActionListener里面定义的一个抽象方法,所有实现这个接口的类都要重写这个方法。 // *

* 一般情况下,这是在编写GUI程序时,组件发生“有意义”的事件时会调用这个方法,比如按钮被按下, // *

* 文本框内输入回车时都会触发这个事件,然后调用你编写的事件处理程序。 // *

* 实现过程大体如下:编写一个ActionListener类的侦听器,组件注册该侦听器, // *

* 侦听器内部要编写这个actionPerformed方法。e可写成arg0, arg: argument of a complex number

* // * 复数的辐角,自变量(argument)。 arg0在Java中表示什么意思? // *

* 就是一个变量名。可以自己定义,一般主函数里面传的参数名叫args,取其中第一个就是:args[0],但也不是arg0, // *

* 具体表示什么意思,从英语意义上来说的话,应该是参数或者变量的第一个。 //

*/

public void actionPerformed(ActionEvent arg0) {


/*

* 当按钮中字符为"登录"时,就执行equals("登录")中的内容。

* 以“按纽”的事件为例,同一个JFrame里可能有多个按钮的事件,为了避免冲突, 给每个按钮设置不同的 ActionCommand,

* 在监听时间的时候,用这个做条件区分事件,以做不同的响应。

* 而这个e.getActionCommand方法返回String,通过这个String能判断是哪个按钮触发了事件。

*/

if (arg0.getActionCommand().equals("已经注册过,可直接登录")) {


/* trim()函数移除字符串两侧的空白字符或其他预定义字符。 */

/*

* swingClass.uname.getText().trim();翻译一下:在下面的 public class

* swingClass extends JFrame {} 中获得去空格后得到的定义的unme的文本内容“1”

*/

String uname = swingClass.uname.getText().trim();

/* uname.isEmpty() 翻译一下:uname变量为空 */

String pwd = swingClass.pwd.getText().trim();


if (uname.isEmpty() || pwd.isEmpty()) {


JOptionPane.showMessageDialog(null, "用户名或密码为空");


} else {


if (uname.equals(yonghu.uname) && pwd.equals(yonghu.pwd)) {


JOptionPane.showMessageDialog(null, "用户名和密码输入正确,可以登录");


new ChengGongDengLuHouDejiemian();


/* JTable界面 */

/*

* // * 用new实例化成功登录后的界面的窗口, // * 调用显示窗口的界面 //

*/

/* 将Class_DengLu中的登录的界面设置为可见的(true)或隐藏的(false)。 */

new JTableJieMian();


d.setVisible(false);


} else {


JOptionPane.showMessageDialog(null, "用户名或密码输入错误");


}


}


}


else if (arg0.getActionCommand().equals("没注册过,先注册")) {


JOptionPane.showMessageDialog(null, "没注册过,先注册");


} else {

/*

* // * int o(o为OPTION“选择”的缩写) = JOptionPane.showConfirmDialog(null,

* // * "是否确认关闭页面");就是在关闭一个界面东西 的时候, 还会跳出一个询问框问是否要真的退出。 // * // *

* setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // *

* addWindowListener(new WindowAdapter(){ public void // *

* windowClosing(WindowEvent e){ int o // *

* =JOptionPane.showConfirmDialog(null,"退出?"); // *

* if(o==JOptionPane.OK_OPTION){ System.exit(0); } } }); //

*/

int o = JOptionPane.showConfirmDialog(null, "是否确认关闭页面");


if (o == 0) {

/* exit()的参数是退出的状态。惯例:为0是正常退出,非零为异常退出 */

System.exit(0);


}


}


}


/*

* arg是java主函数的入口参数,它是一个字符串数组变量 void focusGained(FocusEvent e):当获得焦点时发生.

* void focusLost(FocusEvent e):当失去焦点时发生.

*/


// /*

// * focusLost:此事件指示 Component 不再是焦点所有者。下面是事件方法。个人理解:“

// * 焦点”表示点击了有内容等框等。arg0.getSource() == Class_DengLu.uname翻译:获取的输入框的内容

// */


@Override

public void focusGained(FocusEvent arg0) {


if (arg0.getSource() == d.uname) {

/*

* // * System.out.println("选中了用户名框");显示在编译器上。这里的arg0.getSource() ==

* // * Class_DengLu.uname翻译:点击了输入框 //

*/

System.out.println("选中了用户名框");


} else if (arg0.getSource() == d.pwd) {


// /* getSource方法返回的是对象 即触发这个按钮,执行得到的 */

System.out.println("选中了密码框");


} else if (arg0.getSource() == d.pwd1) {


System.out.println("选中了确认密码框");


}


}


@Override

public void focusLost(FocusEvent arg0) {


if (arg0.getSource() == d.uname) {


/* getSource获得所选 */


String uname = d.uname.getText();


if (uname.isEmpty()) {


d.lb_uname_panduan.setText("请输入用户名");


d.lb_uname_panduan.setForeground(Color.red);


} else {


if (uname.length() > 12 || uname.length() == 0) {


d.lb_uname_panduan.setText("用户名格式输入错误");


d.lb_uname_panduan.setForeground(Color.red);


} else {


d.lb_uname_panduan.setText("用户名输入正确");


d.lb_uname_panduan.setForeground(Color.green);


}


}


} else if (arg0.getSource() == d.pwd) {


String pwd = d.pwd.getText().trim();


if (pwd.length() < 6 || pwd.length() == 0) {


d.lb_pwd_panduan.setText("密码格式输入错误,不可少于6位");


d.lb_pwd_panduan.setForeground(Color.red);


} else {


d.lb_pwd_panduan.setText("输入正确");


d.lb_pwd_panduan.setForeground(Color.green);


}

/*

* // * // * arg是java主函数的入口参数,它是一个字符串数组变量 void

* focusGained(FocusEvent e): 当获得焦点时发生. // * // * void

* focusLost(FocusEvent e):当失去焦点时发生. //

*/

// /*

// * focusGained:此事件指示 Component(组成部分) 现在是焦点所有者。

// *

// * 前面有class shijian implements ActionListener, FocusListener {}

// */

} else if (arg0.getSource() == d.pwd1) {/*

* 做判断两次密码是否一致的判断

* 先获取第一次输入的密码,再获取第二次输入的密码,

* 然后比较一下两次密码是否一致不就完啦

*/


String pwd1 = d.pwd.getText().trim();// 获取第一次的密码


String pwd2 = d.pwd1.getText().trim();// 获取第二次输入的密码.


if (pwd1.equals(pwd2)) {


d.lb_pwd_queren.setText("输入正确");


d.lb_pwd_queren.setForeground(Color.GREEN);


} else {


d.lb_pwd_queren.setText("两次密码输入不一致");


d.lb_pwd_queren.setForeground(Color.red);


}


}


}


}


//

// /*

// * JFrame是java中的一个类,它是一个容器,允许程序员把其他组件(Swing 的三个基本构造块:标签、

// * 按钮和文本字段)添加到它里面,把它们组织起来,并把它们呈现给用户。

// * JFrame是一个顶层的框架类,好比一个窗户的框子。也是一个容器类。这个框子可以嵌入几个玻璃窗。

// */


// /* JButton类是按钮的实现。该组件具有标签,并在按下时生成事件。它也可以有一个图像。 */


/*

 * 定义为静态变量以便使用 ,CheckBox控件就是我们一般所说的复选框(选择多个选项,“多选框”, 选爱好等), 通常用于某选项的打开或关闭

 */

// static JCheckBox JCheckBox_aihao1, JCheckBox_aihao2,

// JCheckBox_aihao3 = null;

// /*

// * JComboBox类是一个组合按钮或可编辑字段和下拉列表(LieBiao)的组件。

// */

// static JComboBox JComboBox_XiaLaLieBiao = null;

// /*

// * JLabel等是一些基础组件,它必须置于某个容器里,类似于窗花、剪纸,必须置于窗户的表面。

// * JLabel类可以显示文本或图像。通过在显示区域中设置垂直和水平对齐来对齐标签的内容。

// * 默认情况下,标签在显示区域中垂直居中。默认情况下,纯文本标签前沿对齐;

// * 默认情况下,仅图像标签水平居中。//原文出自【易百教程】,商业转载请联系作者获得授权

// * ,非商业请保留原文链接:https://www.yiibai.com/swing/swing_jlabel.html

// */

// static JLabel JLabel_uname, JLabel_qrmima, JLabel_sex, JLabel_aihao,

// JLabel_address,

//

// JLabel_jieshao, JLabel_uname_panduan, JLabel_pwd_panduan,

// JLabel_pwd,

//

// JLabel_pwd_queren = null;

// /* JPasswordField类是一个专门处理密码功能并允许编辑单行文本的组件。 */

// static JPasswordField pwd, pwd1 = null;

// /* JRadioButton类是单选按钮的实现 ,可以选择或取消选择的项,并向用户显示其状态。 */

// static JRadioButton JRadioButton_sex_man, JRadioButton_sex_woman = null;

// /* JTextArea类是一个显示纯文本的多行(DuoHang)区域。 */

// static JTextArea JTextArea_DuoHang = null;

// /* JTextField类是一个允许编辑单行文本的组件。Field领域美(美式 读音音标:[fild]) */

// static JTextField JTextField_uname;

//


// /*

// * JFrame是java中的一个类,它是一个容器,允许程序员把其他组件(Swing 的三个基本构造块:标签、

// * 按钮和文本字段)添加到它里面,把它们组织起来,并把它们呈现给用户。

// * JFrame是一个顶层的框架类,好比一个窗户的框子。也是一个容器类。这个框子可以嵌入几个玻璃窗。

// */


/* JFrame f = new JFrame();创建FRame对象f,并用构造方法进行实例化 */

public class swingClass extends JFrame {

/*

* // * 定义为静态变量以便使用 ,CheckBox控件就是我们一般所说的复选框(选择多个选项,“多选框”, 选爱好等),

* 通常用于某选项的打开或关闭 //

*/

static JCheckBox aihao1, aihao2, aihao3 = null;

/*

* // * JComboBox类是一个组合按钮或可编辑字段和下拉列表(LieBiao)的组件。 //

*/

static JComboBox com1 = null;

/* JButton类是按钮的实现。该组件具有标签,并在按下时生成事件。它也可以有一个图像。 */

static JButton DengLuAnNu, QuXiaoAnNu, ZhuCeMiMaAnNu = null;

/* JTextArea类是一个显示纯文本的多行(DuoHang)区域。 */

static JTextArea jt1 = null;

/*

* // * JLabel等是一些基础组件,它必须置于某个容器里,类似于窗花、剪纸,必须置于窗户的表面。 // *

* JLabel类可以显示文本或图像。通过在显示区域中设置垂直和水平对齐来对齐标签的内容。 // *

* 默认情况下,标签在显示区域中垂直居中。默认情况下,纯文本标签前沿对齐; // * 默认情况下,仅图像标签水平居中。 //

*/

static JLabel lb_uname, lb_qrmima, lb_sex, lb_aihao, lb_address,


lb_jieshao = null;


static JLabel lb_uname_panduan, lb_pwd_panduan, lb_pwd,


lb_pwd_queren = null;

/* JPasswordField类是一个专门处理密码功能并允许编辑单行文本的组件。 */

static JPasswordField pwd, pwd1 = null;

/* JRadioButton类是单选按钮的实现 ,可以选择或取消选择的项,并向用户显示其状态。 */

static JRadioButton sex_man, sex_woman = null;

/* JTextField类是一个允许编辑单行文本的组件。Field领域美(美式 读音音标:[fild]) */

static JTextField uname;


shijian sj = new shijian(this);


/* this就是指对象自己,表示自己,在那个对象的成员函数里出现就表示哪个对象 */


public swingClass() {


/* 总界面设置 */


this.setTitle("登录界面");


this.setSize(700, 600);


this.setLocationRelativeTo(null);


this.setLayout(null);


/* 用户名 */


lb_uname = new JLabel("用户名");


this.add(lb_uname);


lb_uname.setBounds(100, 100, 40, 30);


/* setBounds(x,y,size_x,size_y) */


uname = new JTextField(20);


uname.setBounds(180, 100, 140, 30);


uname.addFocusListener(sj);


this.add(uname);


lb_uname_panduan = new JLabel("用户名长度不能大于12位");


lb_uname_panduan.setForeground(Color.red);


lb_uname_panduan.setBounds(330, 100, 250, 30);


this.add(lb_uname_panduan);


/* 密 码 */


lb_pwd = new JLabel("密 码");


this.add(lb_pwd);


lb_pwd.setBounds(100, 140, 40, 30);


pwd = new JPasswordField();


pwd.setBounds(180, 140, 140, 30);


pwd.addFocusListener(sj);


this.add(pwd);


lb_pwd_panduan = new JLabel("请输入密 码,不可少与6位");


lb_pwd_panduan.setForeground(Color.red);


lb_pwd_panduan.setBounds(330, 140, 240, 30);


this.add(lb_pwd_panduan);


// lb_pwd_panduan = new JLabel("请确认密码");


// lb_pwd_panduan.setForeground(Color.red);


// lb_pwd_panduan.setBounds(330, 140, 150, 30);


// this.add(lb_pwd_panduan);


/* 确认密码 */


lb_qrmima = new JLabel("确认密码");


lb_qrmima.setBounds(100, 180, 70, 30);


this.add(lb_qrmima);


pwd1 = new JPasswordField(20);


pwd1.setBounds(180, 180, 140, 30);


// pwd1.addFocusListener(sj);


pwd1.addFocusListener(new shijian(this));


this.add(pwd1);


lb_pwd_queren = new JLabel("请输入和上一 次一致的密码");


lb_pwd_queren.setForeground(Color.red);


lb_pwd_queren.setBounds(330, 180, 180, 30);


this.add(lb_pwd_queren);


lb_pwd_queren.addFocusListener(sj);


lb_sex = new JLabel("性别");


lb_sex.setBounds(100, 210, 70, 30);


this.add(lb_sex);


sex_woman = new JRadioButton("女");


sex_man = new JRadioButton("男", true);


sex_man.setBounds(180, 210, 70, 30);


sex_woman.setBounds(260, 210, 70, 30);


this.add(sex_man);


this.add(sex_woman);


ButtonGroup bg1 = new ButtonGroup();


bg1.add(sex_man);


bg1.add(sex_woman);


lb_aihao = new JLabel("爱好");


lb_aihao.setBounds(100, 250, 70, 30);


this.add(lb_aihao);


aihao1 = new JCheckBox("唱");


aihao2 = new JCheckBox("跳");


aihao3 = new JCheckBox("rap");


aihao1.setBounds(180, 250, 70, 30);


aihao2.setBounds(250, 250, 70, 30);


aihao3.setBounds(320, 250, 70, 30);


this.add(aihao1);


this.add(aihao2);


this.add(aihao3);


lb_address = new JLabel("家庭地址");


lb_address.setBounds(100, 290, 70, 30);


this.add(lb_address);


com1 = new JComboBox();


com1.addItem("请选择家庭地址");


com1.addItem("北京");


com1.addItem("上海");


com1.addItem("广州");


com1.setBounds(180, 290, 140, 30);


this.add(com1);


lb_jieshao = new JLabel("个人介绍");


lb_jieshao.setBounds(100, 330, 70, 30);


this.add(lb_jieshao);


jt1 = new JTextArea();


jt1.setColumns(8);


jt1.setRows(4);


jt1.setBounds(180, 330, 140, 40);


jt1.setLineWrap(true);


this.add(jt1);


JButton btn_dl = new JButton("已经注册过,可直接登录");


btn_dl.setBounds(20, 400, 180, 35);


QuXiaoAnNu = new JButton("取消");


ZhuCeMiMaAnNu = new JButton("没注册过,先注册");


ZhuCeMiMaAnNu.setBounds(368, 400, 180, 35);


QuXiaoAnNu.setBounds(240, 400, 80, 35);


btn_dl.addActionListener(sj);


ZhuCeMiMaAnNu.addActionListener(sj);


QuXiaoAnNu.addActionListener(sj);


this.add(btn_dl);


this.add(ZhuCeMiMaAnNu);


this.add(QuXiaoAnNu);


this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


this.setVisible(true);


}


}


class yonghu {


static String pwd = "pwdpwd";


static String uname = "1";


}





package swingPackage;


import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


import javax.swing.BorderFactory;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTree;

import javax.swing.UIManager;

import javax.swing.event.TreeSelectionEvent;

import javax.swing.event.TreeSelectionListener;

import javax.swing.tree.DefaultMutableTreeNode;


public class ChengGongDengLuHouDejiemian extends JFrame {

static JButton JButton1, JButton2, JButton3, JButton4 = null;

static JLabel JLabel1, JLabel2, JLabel3, JLabel4 = null;

static JPanel JPanel1, JPanel2, JPanel3, JPanel4, JPanel5, JPanel6 = null;

JTree JTree1 = null;/*声明一个树控件,JTree为树形控件,即像树一样的按钮等的控件等*/


public ChengGongDengLuHouDejiemian() {


this.setTitle("登录后的主界面");

/*layout:布局*/

/*setLayout()设置用户界面上的屏幕组件的格式布局,是java图形界面编程的常用方法。默认为流式布局。*/

this.setLayout(null);

this.setSize(700, 700);

/*location:地点.relative:亲属。

* public void setLocationRelativeTo(Component c)设置窗口相对于指定组件的位置。 

如果组件当前未显示,或者 c 为 null,则此窗口将置于屏幕的中央。 */

this.setLocationRelativeTo(null);

/*JPanel:面板*/

JPanel1 = new JPanel(null);

/*image:形象。icon:图标*/

JButton1 = new JButton("切换用户", new ImageIcon("img//1.png"));

/*vertical:垂直的。position:位置。

 * JButton1.setVerticalTextPosition(JButton.TOP)定义标签中垂直方向的文字以顶端对齐  */

JButton1.setVerticalTextPosition(JButton.TOP);

/*horizontal:水平的*/

JButton1.setHorizontalTextPosition(JButton.CENTER);

/*bounds:范围*/

JButton1.setBounds(100, 20, 100, 60);

JButton2 = new JButton("借阅排行榜", new ImageIcon("img//2.png"));

JButton2.setVerticalTextPosition(JButton.TOP);


JButton2.setHorizontalTextPosition(JButton.CENTER);

JButton2.setBounds(250, 20, 100, 60);

JButton3 = new JButton("系统管理", new ImageIcon("img//3.png"));

JButton3.setVerticalTextPosition(JButton.TOP);


JButton3.setHorizontalTextPosition(JButton.CENTER);

JButton3.setBounds(400, 20, 100, 60);

JButton4 = new JButton("退出系统", new ImageIcon("img//4.png"));

JButton4.setVerticalTextPosition(JButton.TOP);


JButton4.setHorizontalTextPosition(JButton.CENTER);

JButton4.setBounds(550, 20, 100, 60);


JPanel1.add(JButton1);

JPanel1.add(JButton2);

JPanel1.add(JButton3);

JPanel1.add(JButton4);


JPanel2 = new JPanel(null);

JPanel3 = new JPanel(null);

JPanel4 = new JPanel(null);

JPanel5 = new JPanel(null);

JPanel6 = new JPanel(null);


/* 给所有的JTree控件设置统一的图标, 所以一定要在实例化JTree之前使用,否则没有效果 */


/*collapsed:倒塌。expanded:被扩大的。open:开着的。

* closed是形容词“关闭的”,也是close的过去式和过去分词。

* leaf:叶子*/


/*用户界面(User Interface,简称UI,亦称使用者界面)是指对软件的人机交互、操作逻辑、界面美观的整体设计,

* 是系统和用户之间进行交互和信息交换的介质。Manager(经理;管理委员;主教练;经纪人;总管;)管理程序

* put,(英文单词,动词,翻译为)放置(,写,实施,使(人或物)处于(某种状态)等,在句中可作谓语。)*/

UIManager.put("Tree.collapsedIcon", new ImageIcon("img//1.png"));// 默认打开图标

UIManager.put("Tree.expandedIcon", new ImageIcon("img//2.png"));// 打开后图标

UIManager.put("Tree.openIcon", new ImageIcon("img//3.png"));// 打开

UIManager.put("Tree.closedIcon", new ImageIcon("img//4.png"));// 关闭

UIManager.put("Tree.leafIcon", new ImageIcon("img//5.png"));// 打开后小图标

/*Default:(不履行; 违约; 拖欠; 未到庭;) 默认值*/

/*Mutable易变的;很可能改变的;反复无常的;用情不专的*/


/*DefaultMutableTreeNode:节点。

new DefaultMutableTreeNode:新节点*/

/*node:节点*/

DefaultMutableTreeNode dmtn1 = new DefaultMutableTreeNode("图书管理");

DefaultMutableTreeNode dmtn_yonghu = new DefaultMutableTreeNode("用户管理");

DefaultMutableTreeNode dmtn_yonghu_insert = new DefaultMutableTreeNode(

"增加用户");

DefaultMutableTreeNode dmtn_yonghu_update = new DefaultMutableTreeNode(

"修改用户");

DefaultMutableTreeNode dmtn_yonghu_delete = new DefaultMutableTreeNode(

"删除用户");

DefaultMutableTreeNode dmtn_yonghu_select = new DefaultMutableTreeNode(

"查询用户");

DefaultMutableTreeNode dmtn_jieyue = new DefaultMutableTreeNode("借阅管理");

DefaultMutableTreeNode dmtn_jieyue_insert = new DefaultMutableTreeNode(

"增加借阅信息");

DefaultMutableTreeNode dmtn_jieyue_update = new DefaultMutableTreeNode(

"修改借阅信息");

DefaultMutableTreeNode dmtn_jieyue_delete = new DefaultMutableTreeNode(

"删除借阅信息");

DefaultMutableTreeNode dmtn_jieyue_select = new DefaultMutableTreeNode(

"查询借阅信息");

// 从小到大的方向进行添加呢内容

dmtn_yonghu.add(dmtn_yonghu_insert);

dmtn_yonghu.add(dmtn_yonghu_update);

dmtn_yonghu.add(dmtn_yonghu_delete);

dmtn_yonghu.add(dmtn_yonghu_select);

dmtn_jieyue.add(dmtn_jieyue_insert);

dmtn_jieyue.add(dmtn_jieyue_update);

dmtn_jieyue.add(dmtn_jieyue_delete);

dmtn_jieyue.add(dmtn_jieyue_select);

dmtn1.add(dmtn_yonghu);

dmtn1.add(dmtn_jieyue);


JTree1 = new JTree(dmtn1);


JTree1.addTreeSelectionListener(new shijian_zc(this));

JTree1.setBounds(10, 10, 150, 300);

JPanel2.add(JTree1);

JLabel1 = new JLabel();

JLabel2 = new JLabel();

JLabel3 = new JLabel();

JLabel4 = new JLabel();

JLabel1.setBounds(0, 0, 534, 564);

/* setBounds(x,y,size_x,size_y) */

JLabel2.setBounds(0, 0, 534, 564);

JLabel3.setBounds(0, 0, 534, 564);

JLabel4.setBounds(0, 0, 534, 564);

JLabel1.setIcon(new ImageIcon("img//11.png"));

JLabel2.setIcon(new ImageIcon("img//22.png"));

JLabel3.setIcon(new ImageIcon("img//33.png"));

JLabel4.setIcon(new ImageIcon("img//44.png"));

JPanel3.add(JLabel1);

JPanel4.add(JLabel2);

JPanel5.add(JLabel3);

JPanel6.add(JLabel4);

JButton1.addActionListener(new shijian_zc(this));

JButton2.addActionListener(new shijian_zc(this));

JButton3.addActionListener(new shijian_zc(this));

JButton4.addActionListener(new shijian_zc(this));

JPanel1.setBounds(0, 0, 700, 100);

JPanel2.setBounds(0, 100, 150, 600);

JPanel3.setBounds(150, 100, 550, 600);

JPanel4.setBounds(150, 100, 550, 600);

JPanel5.setBounds(150, 100, 550, 600);

JPanel6.setBounds(150, 100, 550, 600);


JPanel1.setBorder(BorderFactory.createLineBorder(Color.red));

JPanel2.setBorder(BorderFactory.createLineBorder(Color.green));

JPanel3.setBorder(BorderFactory.createLineBorder(Color.blue));

JPanel4.setBorder(BorderFactory.createLineBorder(Color.red));

JPanel5.setBorder(BorderFactory.createLineBorder(Color.green));

JPanel6.setBorder(BorderFactory.createLineBorder(Color.blue));


this.add(JPanel1);

this.add(JPanel2);

this.add(JPanel3);

this.add(JPanel4);

this.add(JPanel5);

this.add(JPanel6);

/*operation,中文意思是手术、运行。*/


/*EXIT:(出口; 通道; 太平门; 安全门; 离去; 出去; )(退出; 死亡; 退场)*/

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


/*visible:可见的。set:设置*/

this.setVisible(true);

// this.setTitle("登录后的界面");

// this.setLayout(null);

// this.setSize(800, 800);

// this.setLocationRelativeTo(null);

// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// this.setVisible(true);

}

}

/*implements:实现*/

class shijian_zc implements ActionListener, TreeSelectionListener {


public ChengGongDengLuHouDejiemian dd = null;


public shijian_zc(ChengGongDengLuHouDejiemian d) {

dd = d;

}

/*actionPerformed:按钮单击方法。ActionEvent:动作事件*/

@Override

public void actionPerformed(ActionEvent arg0) {

if (arg0.getSource() == dd.JButton1) {


dd.JPanel3.setVisible(true);// 让jp3的区域显示,其他的区域隐藏

dd.JPanel4.setVisible(false);

dd.JPanel5.setVisible(false);

dd.JPanel6.setVisible(false);

} else if (arg0.getSource() == dd.JButton2) {


dd.JPanel4.setVisible(true);// 让jp4的区域显示,其他的区域隐藏

dd.JPanel3.setVisible(false);

dd.JPanel5.setVisible(false);

dd.JPanel6.setVisible(false);

} else if (arg0.getSource() == dd.JButton3) {


dd.JPanel5.setVisible(true);// 让jp5的区域显示,其他的区域隐藏

dd.JPanel4.setVisible(false);

dd.JPanel3.setVisible(false);

dd.JPanel6.setVisible(false);

} else if (arg0.getSource() == dd.JButton4) {


dd.JPanel6.setVisible(true);// 让jp6的区域显示,其他的区域隐藏

dd.JPanel4.setVisible(false);

dd.JPanel5.setVisible(false);

dd.JPanel3.setVisible(false);

}


}


// 点击Tree中的子节点会执行的方法

@Override

/*value(值)Changed(被改变)*/

public void valueChanged(TreeSelectionEvent arg0) {

// 获取最后一次点击的那个节点

DefaultMutableTreeNode str = (DefaultMutableTreeNode) dd.JTree1

.getLastSelectedPathComponent();

// JOptionPane.showMessageDialog(null, str.toString());

if (str.toString().equals("增加用户")) {

dd.JPanel3.setVisible(true);// 让jp3的区域显示,其他的区域隐藏

dd.JPanel4.setVisible(false);

dd.JPanel5.setVisible(false);

dd.JPanel6.setVisible(false);

} else if (str.toString().equals("修改用户")) {

dd.JPanel4.setVisible(true);// 让jp4的区域显示,其他的区域隐藏

dd.JPanel3.setVisible(false);

dd.JPanel5.setVisible(false);

dd.JPanel6.setVisible(false);

} else if (str.toString().equals("删除用户")) {

dd.JPanel5.setVisible(true);// 让jp5的区域显示,其他的区域隐藏

dd.JPanel4.setVisible(false);

dd.JPanel3.setVisible(false);

dd.JPanel6.setVisible(false);

} else if (str.toString().equals("查询用户")) {


dd.JPanel6.setVisible(true);// 让jp6的区域显示,其他的区域隐藏

dd.JPanel4.setVisible(false);

dd.JPanel5.setVisible(false);

dd.JPanel3.setVisible(false);

}

}

}




Java:swing图书管理系统(详细个人注释版)Object类详解(1)的评论 (共 条)

分享到微博请遵守国家法律