【JAVA】:MyEclipse8.5中的可视化界面应用及常用方法

2020/6/22 Java

# MyEclipse8.5中的可视化界面JTable和JComboBox应用,及常用方法。

# 一、可视化界面的创建
  • 创建项目(Java):因为比较简单就不详细介绍。
  • 创建一个可视化界面。      (1)右键src下的一个包(用于保存可视化界面)->new->Matisse Form.      (2)此时就会来到这个界面,在Name框中输入类名。然后在Select template:点击JFrame后,点击Finish即可。 在这里插入图片描述      (3)此时来到了在MyEclipse右侧出现这个窗口,点击SwingControls即可在会出现组件,双击拉到左侧界面即可将其添加到界面中。 在这里插入图片描述 在这里插入图片描述      (4)功能区:点击组件,在右下侧可以出现功能区,Properites区主要是组件的样式,Event主要是点击事件。其他俩个区很少使用。

在这里插入图片描述

# 二、JTable点击事件
  • 添加点击事件      在界面中添加表格后,点击表格后,在功能区选择mouseClicked 在这里插入图片描述      此时来到该函数下,添加具体事件,这里主要是如何获取表格中的被鼠标点击后如何获取表格的内容,以及获取被编辑后的值,如何将数据显示在表格中,最后设置表格的特定单元格可以编辑

  • 将数据显示在表格

private void init() throws Exception {
		st_course = Admin_Impl.get_Courselist();//获取数据
		Object title[] = { "序号", "课程", "学分", "教师", "上课地点", "课程数量" };//表格开头内容
		Object detail[][] = new Object[st_course.size()][6];//数据部分
		for (int i = 0; i < st_course.size(); i++) {
			detail[i][0] = Integer.toString(st_course.get(i).getCo_id());
			detail[i][1] = st_course.get(i).getCourse();
			detail[i][2] = Integer.toString(st_course.get(i).getCredit());
			detail[i][3] = st_course.get(i).getName();
			detail[i][4] = st_course.get(i).getCo_time();
			detail[i][5] = st_course.get(i).getNumber();
		}
		this.jTable1.setModel(new DefaultTableModel(detail, title));//将数据添加到表格中
	}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

在这里插入图片描述

  • 如何获取表格中的被鼠标点击后如何获取表格的内容      在系统自动生成的函数下写具体事件
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
		if (evt.getClickCount() == 1) {//判断鼠标点击一次
		//获取表格被点击的行以及列的单元格的值(可以根据具体需要更换格子)
			int co_id = Integer.valueOf(((String) this.jTable1.getValueAt(
					this.jTable1.getSelectedRow(), 0)));
					System.out.println(co_id);
		}
	}
1
2
3
4
5
6
7
8
  • 获取被编辑后的值      这里是通过按钮来控制获取被编辑后的数值
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
		    //取消鼠标光标(最重要)
			this.jTable1.getCellEditor().stopCellEditing();
			//获取被编辑后的数值 current_row是鼠标点击的编辑的行数
			String grade=(String)this.jTable1.getValueAt(current_row, 4);
			System.out.println(grade);	
	}
1
2
3
4
5
6
7
  • 设置表格的特定单元格可以编辑      这里需要覆写isCellEditable()方法
//在第一个例子中只要改写 this.jTable1.setModel(new DefaultTableModel(detail, title));即可
this.jTable1.setModel(new DefaultTableModel(detail, title){
   public boolean isCellEditable(int row, int column) {
              //通过返回布尔值来控制是否被编辑,true可编辑,false不可编辑
					if (column == 4) {
						return true;
					}else {
						return false;
					}
				}
});

this.jTable1.isCellEditable(0, 4);//控制只有第四列可以被编辑
1
2
3
4
5
6
7
8
9
10
11
12
13
# 三、JComboBox点击事件

      这里主要讲以下几个事件(1)如何设置下拉框中的内容 (2)如何获取下拉框的内容

  • 如何获取下拉框的内容       在界面点击下拉框后,在功能区点击itemStateChanged 此时将会跳转到该函数下。 在这里插入图片描述
private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
		if (evt.getStateChange() == ItemEvent.SELECTED) {
			current_course = (String) this.jComboBox1.getSelectedItem();//获取点击的内容
		}
	}
1
2
3
4
5
  • 如何设置下拉框中的内容      方法一:直接在功能区的组件样式添加内容 点击model 添加内容在这里插入图片描述 缺点:添加的内容是固定的,不能修改

     方法二:通过动态的方法添加内容

	private void init2() {
		courselist = Teacher_Impl.get_courselist(teacher.getId());//下拉框内容
		this.jComboBox1.addItem("请选择课程");
		for (String course : courselist) {
			this.jComboBox1.addItem(course);//添加到下拉框
		}
	}
1
2
3
4
5
6
7
this.jComboBox1.removeAllItems();//清空下拉款原来的内容(重要)
1
# 四、一些常用的方法
//在界面添加背景图片
ImageIcon bk = new ImageIcon(this.getClass().getResource("../背景.jpg"));
		jLabel2.setIcon(bk);
		jLabel2.setBounds(0, 0, 910, 550);
		this.getLayeredPane().add(jLabel2, new Integer(Integer.MIN_VALUE));
		Container panel = this.getContentPane();
		((JPanel) panel).setOpaque(false);

//界面在电脑居中
this.setLocationRelativeTo(null);
//界面大小不能修改
this.setResizable(false);
//设置密码框的显示形式
this.jPasswordField1.setEchoChar('*');
//弹出框
JOptionPane.showMessageDialog(this, "密码或者姓名错误");
//判断单选项是否被点击
this.jRadioButton1.isSelected();
//将界面睡眠(关闭)
this.dispose();
//跳转到下一个界面
new Teacher_Menus(tea).setVisible(true);
//显示密码
this.jPasswordField1.setEchoChar((char) 0);
//设置文本框不能被修改
this.jTextField1.setEditable(false);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26