📄 customeditorexample.java
字号:
package JFCBook.Chapter11.jdk13;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import JFCBook.Chapter11.ColorRenderer;
import JFCBook.Chapter11.jdk13.ColorEditor;
public class CustomEditorExample extends JFrame {
public CustomEditorExample(String title) {
super(title);
AbstractTableModel model = new AbstractTableModel() {
// The table data
Object[][] data = {
{ "John Doe", Color.green },
{ "Jane Doe", Color.yellow },
{ "John Smith", Color.blue },
{ "Fred Bloggs", Color.red }
};
String[] columnNames = {
"Name", "Color"
};
public int getRowCount() {
return data.length;
}
public int getColumnCount() {
return data[0].length;
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public String getColumnName(int columnIndex) {
return columnNames[columnIndex];
}
public Class getColumnClass(int columnIndex) {
return data[0][columnIndex].getClass();
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
public void setValueAt(Object value, int rowIndex, int columnIndex) {
if ((value instanceof Color && columnIndex == 1) ||
(value instanceof String && columnIndex == 0)) {
data[rowIndex][columnIndex] = value;
fireTableCellUpdated(rowIndex, columnIndex);
}
}
};
// Create the table
Dimension viewportSize = new Dimension(450, 120);
JTable tbl = new JTable(model);
// Create the class renderer for colors
ColorRenderer renderer = new ColorRenderer();
renderer.setHorizontalAlignment(JLabel.CENTER);
renderer.setToolTipText("This is the person's favorite color");
tbl.setDefaultRenderer(Color.class, renderer);
// Create the class editor for colors
ColorEditor editor = new ColorEditor();
tbl.setDefaultEditor(Color.class, editor);
tbl.setPreferredScrollableViewportSize(viewportSize);
JScrollPane pane = new JScrollPane(tbl);
this.getContentPane().add(pane);
}
public static void main(String[] args) {
JFrame f = new CustomEditorExample("Using a Custom Editor (1.3 version)");
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -