JAVA GUI学习 - JTable表格组件学习_C ***
/**
* JTable高级应用
* @author Wfei
*
*/
public class JTableKnow_C extends JFrame
{
JTable jTable;
MyJMenuItem jMenuItem;
MyJMenuItem jMenuItem2;
JPopupMenu jPopupMenu;
JMenu jMenu;
public JTableKnow_C()
{
this.setBounds(300, 100, 400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Object[][] tableData = new Object[3][4];
tableData[0] = new Object[]{"1-1","1-2","左",true};
tableData[1] = new Object[]{"2-1","2-2","右",false};
tableData[2] = new Object[]{"3-1","3-2","左",true};
Object[] tableColName = new Object[]{"第一列名","第二列名","第三列名","第四列名"};
//创建表格模型
DefaultTableModel defaultTableModel = new DefaultTableModel(tableData,tableColName);
//实例化表格
jTable = new JTable(defaultTableModel)
{
/**
* 判断某一列是否为boolean类型,如果是:以复选框显示
*/
@Override
public Class<?> getColumnClass(int column)
{
// TODO Auto-generated method stub
return jTable.getValueAt(0, column).getClass();
}
/**
* 设置某一行、某一列、或某个单元格是否可编辑
*/
@Override
public boolean isCellEditable(int row, int column)
{
// TODO Auto-generated method stub
if (row == 1 && column == 1)
{
return false;
}
else {
return true;
}
}
//表格的标题,必须配合滚动面板一起使用才能显示出来
};
//实例化滚动面板
JScrollPane jScrollPane = new JScrollPane(jTable);
this.add(jScrollPane); jPopupMenu = new JPopupMenu();
jMenu = new JMenu("更改为:");
jMenuItem = new MyJMenuItem("左",1);
jMenuItem2 = new MyJMenuItem("右",1);
jPopupMenu.add(jMenu);
jMenu.add(jMenuItem);jMenu.add(jMenuItem2); jTable.setComponentPopupMenu(jPopupMenu);
jPopupMenu.addPopupMenuListener(new PopupMenuListener()
{
/**
* 设置个性化显示菜单的监听事件
*/
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e)
{
int index = jTable.getSelectedRow();
if (index != -1)
{
String str = jTable.getValueAt(index, 2).toString();
if (str.equals("左"))
{
jMenuItem.setVisible(false);
jMenuItem2.setVisible(true);
}
else {
jMenuItem.setVisible(true);
jMenuItem2.setVisible(false);
}
}
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e)
{
}
@Override
public void popupMenuCanceled(PopupMenuEvent e)
{
}
});
//为菜单的每个jMenuItem加上监听器
// addListenerToJMenuItem(jMenu);
}
// public void addListenerToJMenuItem(Container container)
// {
// for (Component component : container.getComponents())
// {
// if (component == JMenuItem.class)
// {
// System.out.println("1111111");
// JMenuItem jMenuItem = (JMenuItem) component;
// jMenuItem.addActionListener(new MenuItemListener());
// }
// else {
// System.out.println("2222222");
// JMenu jMenu = (JMenu) component;
// addListenerToJMenuItem(jMenu);
// }
// }
// }
/**
* 菜单项监听器
* @author Administrator
*
*/
private class MenuItemListener implements ActionListener
{ @Override
public void actionPerformed(ActionEvent e)
{
JMenuItem item = (JMenuItem)e.getSource();
// TODO Auto-generated method stub
//JOptionPane.showMessageDialog(null, item.getText());
//判断是否有选中项
if(jTable.getSelectedRow() != -1)
{
//判断按钮
if (item == jMenuItem)
{
JOptionPane.showMessageDialog(null, "已更改为:右");
}
else {
JOptionPane.showMessageDialog(null, "已更改为:左");
}
}
else
{
JOptionPane.showMessageDialog(null, "请选择修改的用户");
}
} }
public static void main(String[] args)
{
JTableKnow_C jTableKnowC = new JTableKnow_C();
jTableKnowC.setVisible(true);
}
}
JAVA GUI学习 - JTable表格组件学习_C ***的更多相关文章
- JAVA GUI学习 - JTable表格组件学习_A ***
public class JTableKnow_A extends JFrame { public JTableKnow_A() { this.setBounds(300, 100, 400, 300 ...
- Java GUI编程4---标签组件JLabel
Java GUI编程4---标签组件JLabel 2018年06月11日 22:06:58 蓝蓝223 阅读数 12103更多 个人分类: Java书籍摘抄 所属专栏: Java Swing图形界面 ...
- JAVA GUI学习 - JOptionPane对话框组件学习
/** * 对话框 - 学习笔记 * @author Wfei * */ public class JoptionPaneKnow extends JFrame { public JoptionPan ...
- JAVA GUI学习 - JTree树结构组件学习 ***
public class JTreeKnow extends JFrame { public JTreeKnow() { this.setBounds(300, 100, 400, 500); thi ...
- JAVA GUI学习 - JTabbedPane选项卡组件学习
public class JTabbedPaneKnow extends JFrame { JTabbedPane jTabbedPane; JPanel jPanelRed; JPanel jPan ...
- 编写Java程序,使用JTable表格组件展现人员信息列表
返回本章节 返回作业目录 需求说明: 使用JTable组件显现人员信息列表 实现思路: 创建一个JTable对象. 创建一个JScrollPane对象(显示横向和纵向滚动条). 将表格添加到滚动面板. ...
- Informatic学习总结_day03_update组件学习
- C# BackgroundWorker组件学习
C# BackgroundWorker组件学习 C# BackgroundWorker组件学习 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用Ba ...
- 第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件
jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使 ...
随机推荐
- ExtJS 4.2学习(一)——环境搭建
1.把JDK集成到myeclipse里: 虽然myeclipse自带了jdk,但我们还是配置自己的JDK1.7 window——>Proferences——>Java——>Compl ...
- java实现cmd的copy功能
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- 不包含任何UserControl
奇怪了,以前做控件的时候都没有这个问题,哎,又堕落了1年,什么都忘了 创建自定义控件 可以继承现有控件,也可以继承userContrl类,但是现在有个问题 很多网上的资料说,啊,直接创建一个自定义控件 ...
- codeforces 535D. Tavas and Malekas KMP
题目链接 又复习了一遍kmp....之前都忘光了 #include<bits/stdc++.h> using namespace std; #define pb(x) push_back( ...
- junit的安装和使用
一.junit的安装: junit-4.11.jar: http://www.java2s.com/Code/Jar/j/Downloadjunit411jar.htm hamcrest-core.j ...
- Android Activity和Fragment传递数据
1.Activity与Activity传递数据 UserLoginActivity.java: Intent welcomePage = new Intent(); Bundle dataBundle ...
- RedisTemplate.htm
http://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/RedisTe ...
- file_get_contents post数据
//默认模拟的header头 private function _defaultHeader() { $header = "User-Agent:Mozilla/5.0 (Windows; ...
- A20 GPIO中断类型差别结果迥异的问题思考
A20GPIO中断类型差别结果迥异的问题思考 最近在使用全志A20做开发时,发现在处理中断的时候,用电平触发模式,报中断比较乱,用边沿触发则很稳定,不会乱报.笔者感到比较困惑,笔者用电平触发写的cod ...
- 关于JQuery中$.data绑定数据原理或逻辑
问题: JQuery中,对于.data([key],[value])函数,当使用其进行数据绑定时,假设要绑定的数据是“引用数据类型”,也就是对象:那么.data函数绑定的是该对象的副本还是该对象的一个 ...