添加点击事件
在界面中添加表格后,点击表格后,在功能区选择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));//将数据添加到表格中
}
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);
}
}
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);
}
//在第一个例子中只要改写 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)如何获取下拉框的内容
private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
if (evt.getStateChange() == ItemEvent.SELECTED) {
current_course = (String) this.jComboBox1.getSelectedItem();//获取点击的内容
}
}
方法二:通过动态的方法添加内容
private void init2() {
courselist = Teacher_Impl.get_courselist(teacher.getId());//下拉框内容
this.jComboBox1.addItem("请选择课程");
for (String course : courselist) {
this.jComboBox1.addItem(course);//添加到下拉框
}
}
this.jComboBox1.removeAllItems();//清空下拉款原来的内容(重要)
//在界面添加背景图片
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);