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

📄 test.java

📁 swing 教程,与大家分享一下,哈哈,希望大家多多指教
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;

public class Test extends JApplet {
	private JComboBox comboBox = 
		new JComboBox(new Object[] {
			new Item(new Object[] {Color.gray, "gray"}),
			new Item(new Object[] {Color.orange, "orange"}),
			new Item(new Object[] {Color.red, "red"}),
			new Item(new Object[] {Color.blue, "blue"}),
			new Item(new Object[] {Color.yellow, "yellow"}),
			new Item(new Object[] {Color.magenta, "magenta"}),
			new Item(new Object[] {Color.black, "black"}),
			new Item(new Object[] {Color.green, "green"}),
			new Item(new Object[] {Color.lightGray, "lightGray"}),
			new Item(new Object[] {Color.white, "white"}),
		});

	public void init() {
		Container contentPane = getContentPane();

		comboBox.setRenderer(new ColorRendererer());
		comboBox.setEditor(new ColorComboBoxEditor());
		comboBox.setEditable(true);

		contentPane.setLayout(new FlowLayout());
		contentPane.add(comboBox);
	}
}
class Item {
	private Color color;
	private String string;

	public Item(Object[] array) {
		color = (Color)array[0];
		string = (String)array[1];
	}
	public Color getColor() { return color; }
	public String toString() { return string; }
}
class ColorComboBoxEditor extends AbstractComboBoxEditor {
	ColorIcon editorIcon = new ColorIcon();
	JLabel editorLabel = new JLabel(editorIcon);

	Item item;

	JColorChooser colorChooser = new JColorChooser();
	ActionListener okListener = new OKListener();
	Dialog dialog = JColorChooser.createDialog(
					  	null, 	 // parentComponent
					  	"Choose A Color",// title
					  	true, 			 // modal
					  	colorChooser,
					  	okListener, 
					  	null); 			 // cancel listener

	public ColorComboBoxEditor() {
		editorLabel.setBorder(BorderFactory.createEtchedBorder());

		editorLabel.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				dialog.setVisible(true);
			}
		});
	}
	class OKListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			item = 
				new Item(new Object[] {
							 colorChooser.getColor(), null});

			fireActionPerformed(e);
		}
	}
	public Component getEditorComponent() {
		return editorLabel;
	}
	public Object getItem() {
		return item;
	}
	public void setItem(Object itemToSet) {
		item = (Item)itemToSet;

		// cannot set the selected item in an editor's
		// setItem method, or an infinite loop results

		editorIcon.setColor(item.getColor());
		editorLabel.setText(item.toString());
	}
	public void selectAll() {
		// from ComboBoxModel interface:  nothing to select	
	}
}
abstract class AbstractComboBoxEditor implements ComboBoxEditor {
	EventListenerList listenerList = new EventListenerList();

	public void addActionListener(ActionListener listener) {
		listenerList.add(ActionListener.class, listener);
	}
	public void removeActionListener(ActionListener listener) {
		listenerList.remove(ActionListener.class, listener);
	}
	protected void fireActionPerformed(ActionEvent e) {
		// Guaranteed to return a non-null array
		Object[] listeners = listenerList.getListenerList();
	
		// Process the listeners last to first, notifying
		// those that are interested in this event
		for (int i = listeners.length-2; i>=0; i-=2) {
		 	if (listeners[i]==ActionListener.class) {
				((ActionListener)
					listeners[i+1]).actionPerformed(e);
		 	}	       
		}
	}	
}
class ColorRendererer extends JLabel implements ListCellRenderer {
	private ColorIcon icon = new ColorIcon();

	public ColorRendererer() {
		setOpaque(true);
		setIcon(icon);
	}
	public Component getListCellRendererComponent(
									JList list,
									Object value,
									int index,
									boolean isSelected,
									boolean cellHasFocus) {
		Item item = (Item)value;

		icon.setColor(item.getColor());
		setText(item.toString());

		if(isSelected) {
			setForeground(list.getSelectionForeground());
			setBackground(list.getSelectionBackground());
		}
		else {
			setForeground(list.getForeground());
			setBackground(list.getBackground());
		}
		return this;
	}
}
class ColorIcon implements Icon {
	private Color color;
	private int w, h;

	public ColorIcon() {
		this(Color.gray, 50, 15);
	}
	public ColorIcon(Color color, int w, int h) {
		this.color = color;
		this.w = w;
		this.h = h;
	}
	public void paintIcon(Component c, Graphics g, int x, int y) {
		g.setColor(Color.black);
		g.drawRect(x, y, w-1, h-1);
		g.setColor(color);
		g.fillRect(x+1, y+1, w-2, h-2);
	}
	public Color getColor() {
		return color;
	}
	public void setColor(Color color) {
		this.color = color;
	}
	public int getIconWidth() {
		return w;
	}
	public int getIconHeight() {
		return h;
	}
}

⌨️ 快捷键说明

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