亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

在表格單元格中添加標簽和按鈕

系統 2255 0

如下圖所示,在表格單元格中添加標簽和按鈕:

?

在表格單元格中添加標簽和按鈕

?

代碼如下:

?

?

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.Cursor;

import java.awt.Dimension;

import java.awt.FlowLayout;

?

import javax.swing.AbstractCellEditor;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.table.TableCellEditor;

import javax.swing.table.TableCellRenderer;

?

import com.customcomponent.basicClass.BasicTableColumnModel;

?

import syspublicpanel.table.SysLoadTable;

import syspublicpanel.table.SysLoadTableModel;

import uiframework.tools.UIProperties;

?

public class TestTableRenderer extends JFrame {

??? private static final long serialVersionUID = 3941331829886452257L;

??? private SysLoadTable testTable = null ; // 表格

???

??? private static final String[] colNames = new String[] { " 第一列 " , " 第二列 " , " 第三列 " }; // 表頭

???

??? public TestTableRenderer() {

?????? initialize();

??? }

???

??? /**

??? ? * 初始化組件

??? ? */

??? private void initialize() {

?????? this .setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE );

?????? this .setSize(400, 300);

?????? this .setLocation(200, 100);

?????? this .setLayout( new BorderLayout());

?????? this .add( new JScrollPane(getTestTable()), BorderLayout. CENTER );

??????

?????? this .setVisible( true );

??? }

???

??? private SysLoadTable getTestTable() {

?????? if ( testTable == null ) {

?????????? SysLoadTableModel tableModel = new SysLoadTableModel( colNames );

?????????? tableModel.setAllEditableColumn( false ); // 設置所有列不可編輯

?????????? tableModel.setColumnEditable( " 第三列 " , true ); // 設置第三列可編輯

??????????

?????????? /**

?????????? ? * 添加表格內容

?????????? ? */

?????????? tableModel.addRow( new Object[] { "1" , "2" , null });

?????????? tableModel.addRow( new Object[] { "11" , "22" , null });

?????????? tableModel.addRow( new Object[] { "111" , "222" , null });

??????????

?????????? testTable = new SysLoadTable(tableModel);

??????????

?????????? BasicTableColumnModel columnModel = (BasicTableColumnModel) testTable .getColumnModel();

?????????? columnModel.getColumn(2).setCellRenderer( new CustomTableRenderer());

?????????? columnModel.getColumn(2).setCellEditor( new CustomTableRenderer());

?????? }

?????? return testTable ;

??? }

?

??? public static void main(String[] args) {

?????? try {

?????????? UIManager. setLookAndFeel (UIProperties. getInstance ().getLookAndFeel());

?????? } catch (ClassNotFoundException e) {

?????????? e.printStackTrace();

?????? } catch (InstantiationException e) {

?????????? e.printStackTrace();

?????? } catch (IllegalAccessException e) {

?????????? e.printStackTrace();

?????? } catch (UnsupportedLookAndFeelException e) {

?????????? e.printStackTrace();

?????? }

??????

?????? new TestTableRenderer();

??? }

}

?

/**

? * 自定義表格渲染器

? */

class CustomTableRenderer extends AbstractCellEditor implements TableCellRenderer, TableCellEditor {

??? private static final long serialVersionUID = 7380564532198049597L;

??? private JPanel panel = null ; // 面板

??? private JLabel delLabel = null ; // 刪除標簽

??? private JButton modifyButton = null ; // 修改按鈕

???

??? private static final String imagePath = "/sysimages/" ; // 圖片路徑

???

??? public CustomTableRenderer() {

?????? delLabel = new JLabel( new ImageIcon(getClass().getResource( imagePath + "delete.gif" )));

?????? delLabel .setCursor( new Cursor(Cursor. HAND_CURSOR ));

?????? delLabel .setToolTipText( " 刪除 " );

??????

?????? modifyButton = new JButton( " 修改 " );

?????? modifyButton .setPreferredSize( new Dimension(60, 20));

??????

?????? panel = new JPanel();

?????? panel .setBackground(Color. WHITE );

?????? panel .setLayout( new FlowLayout(FlowLayout. CENTER , 20, 0));

?????? panel .add( delLabel );

?????? panel .add( modifyButton );

??? }

???

??? public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

?????? if (row == table.getSelectedRow()) {

?????????? panel .setBackground(table.getSelectionBackground());

?????? } else {

?????????? panel .setBackground(Color. WHITE );

?????? }

?????? return panel ;

??? }

??? ???

?

??? public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {

?????????????? if (row == table.getSelectedRow()) {

? ?????????? panel .setBackground(table.getSelectionBackground());

?????? } else {

?????????? panel .setBackground(Color. WHITE );

?????? }

?????? return panel ;

??? }

?

??? public Object getCellEditorValue() {

?????? return null ;

??? }

}

?

?

在表格單元格中添加標簽和按鈕


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月开心六月伊人色婷婷 | 寂寞午夜影院 | 国产精品免费视频能看 | 精品国产品欧美日产在线 | 国产精品欧美日韩一区二区 | 午夜在线一区 | 九九热播视频 | 亚洲精品欧洲久久婷婷99 | 欧美亚洲综合网 | 伊人手机在线视频 | 99热这里只有精品首页 | 国产高清专区 | 午夜精品久久久久久久90蜜桃 | 亚洲另类在线视频 | 日本欧美三级 | 91在线亚洲综合在线 | 日本乱中文字幕系列在线观看 | 婷婷六月色 | 成年性视频bbixx | 手机看片国产精品 | 97视频在线免费观看 | 一级二级毛片 | 亚洲免费视频在线观看 | 色综合中文字幕在线亚洲 | 亚洲欧美v视色一区二区 | 中国一级毛片免费观看 | 69网站在线观看 | 日韩亚洲欧美综合一区二区三区 | 四虎国产永久在线精品免费观看 | 最新仑乱免费视频 | 四虎国产精品永久在线播放 | 国产手机在线视频放线视频 | 在线亚洲精品国产波多野结衣 | 91香蕉在线 | 国产你懂的在线 | 久久福利小视频 | 欧美一二区 | 国产精品久久久久一区二区三区 | 国产真实乱子伦精品视 | 99视频在线观看免费 | 久久精品国产清自在天天线 |