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

📄 customeditorexample.java

📁 一个用java开发界面的程序集(jfc核心编程)
💻 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 + -