Swing的JTable加入按钮
来源:互联网 发布:按键精灵 关联数组 编辑:程序博客网 时间:2024/05/16 15:34
package swing;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;public class table {JTable table = null;JButton viewButton2 = new JButton("hhh");JButton editButton2 = new JButton("www");DefaultTableModel model = null;public JComponent makeUI() {String[] columnNames = { "String", "Button" }; // When I increase the// number of columns it// hides another buttonObject[][] data = { { "AAA", null }, { "BBB", null } };model = new DefaultTableModel(data, columnNames) {};table = new JTable(model);table.setRowHeight(36);ActionPanelEditorRenderer er = new ActionPanelEditorRenderer();TableColumn column = table.getColumnModel().getColumn(1);column.setCellRenderer(er);column.setCellEditor(er);JPanel p = new JPanel(new BorderLayout());p.add(new JScrollPane(table));p.setPreferredSize(new Dimension(320, 200));return p;}public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {@Overridepublic void run() {createAndShowGUI();}});}public static void createAndShowGUI() {JFrame f = new JFrame();f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);f.getContentPane().add(new table().makeUI());f.pack();f.setLocationRelativeTo(null);f.setVisible(true);}class ActionPanelEditorRenderer extends AbstractCellEditor implements TableCellRenderer, TableCellEditor {JPanel panel1 = new JPanel();JPanel panel2 = new JPanel();public ActionPanelEditorRenderer() {super();//JButton viewButton2 = new JButton(new AbstractAction("yy") {////public void actionPerformed(ActionEvent e) {//JOptionPane.showMessageDialog(null, "Viewing");//}//});//JButton editButton2 = new JButton(new AbstractAction("edit2") {//;//public void actionPerformed(ActionEvent e) {//JOptionPane.showMessageDialog(null, "Editing");//}//});//panel1.setOpaque(true);//panel2.setOpaque(true);panel2.add(viewButton2);panel2.add(editButton2);viewButton2.setBackground(Color.red);viewButton2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubint i = table.getSelectedRow();String s = (String)model.getValueAt(i, 0);JOptionPane.showMessageDialog(null, s);}});}@Overridepublic Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row, int column) {panel2.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground());panel2.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground());//panel2.setBackground(table.getBackground());return panel2;}@Overridepublic Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {panel2.setBackground(table.getSelectionBackground());return panel2;}@Overridepublic Object getCellEditorValue() {return null;}}}
查看接口 TableCellRenderer
和类 DefaultTableCellRenderer
和 JTable 中的方法
setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
getColumn(Object identifier).setCellRenderer(TableCellRenderer cellRenderer)
0 0
- Swing的JTable加入按钮
- 【swing】jtable的bug????
- Swing JTable的使用
- jtable 加入按钮等,一个实例
- 关于Swing JTable的getColumnClass
- swing中jtable的使用
- 关于Swing JTable的getColumnClass
- swing中jtable的使用
- Swing的JTable导出excel
- Swing的JTable常用方法
- Swing之JTable的详细介绍(zz)
- Swing之JTable的详细介绍
- Java Swing中JTable的使用
- Java Swing中JTable的使用
- Swing之JTable的详细介绍
- Swing自定义JTable列的宽度
- Swing之JTable的详细介绍
- Swing之JTable的详细介绍
- CGContextScaleCTM,CGContextTranslateCTM
- ccpNormalize 函数理解
- 软件用户分析及IT创新
- 朴素贝叶斯(Naive-Bayes)介绍
- FL2440下的QT安装编译过程介绍
- Swing的JTable加入按钮
- swap nodes in pairs
- 松弛法(relaxation)
- tiny4412配置kernel
- 使用淘宝中间件cobar实现mysql分库分表
- 交叉编译ARM版 Qt (qt-everywhere-opensource-src-4.7.3)
- linux awk命令详解
- 使用github page + hexo3.0 搭建个人博客,加绑定域名。
- (转)物联网这么火爆,存储之家介绍几种嵌入式文件系统