⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buttoncelleditor.java

📁 TestDataBuilder是一个采用Java编写的
💻 JAVA
字号:
package com.testDataBuilder.ui.main;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

/**
 * Most of the code for this class, ButtonCellEditor,
 * came from http://www2.gol.com/users/tame/swing/examples/JTableExamples2.html.
 */

public class ButtonCellEditor extends DefaultCellEditor implements TableCellRenderer {
	
	private JButton button;
	private JButton rendererButton;

	private String    label;
	private boolean   isPushed;

	protected int row = -1;
	protected int col = -1;

	public ButtonCellEditor(JCheckBox checkBox) {
		super(checkBox);
		button = new JButton();
		button.setOpaque(true);
		button.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {					
					fireEditingStopped();
				}
			}
		);

		rendererButton = new JButton();
		rendererButton.setOpaque(true);

	}

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

		if (isSelected) {
			rendererButton.setForeground(table.getSelectionForeground());
			rendererButton.setBackground(table.getSelectionBackground());
		} else{
			rendererButton.setForeground(table.getForeground());
			rendererButton.setBackground(UIManager.getColor("Button.background"));
		}

		label = (value == null) ? "" : value.toString();
		rendererButton.setText(label);

		return rendererButton;
	}

	public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
		if (isSelected) {
			button.setForeground(table.getSelectionForeground());
			button.setBackground(table.getSelectionBackground());
		} else{
			button.setForeground(table.getForeground());
			button.setBackground(table.getBackground());
		}
		label = (value == null) ? "" : value.toString();
		button.setText(label);
		isPushed = true;
		this.row = row;
		this.col = column;
		return button;
	}

	public Object getCellEditorValue() {
		if (isPushed)  {
			doEditing();
		}
		isPushed = false;
		return new String(label);
	}

	protected void doEditing() {}

	public boolean stopCellEditing() {
		isPushed = false;
		return super.stopCellEditing();
	}

	protected void fireEditingStopped() {
		super.fireEditingStopped();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -