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

📄 components2.java

📁 Swing入门必看 Swing Demo
💻 JAVA
字号:
/*
 * @(#)Components2.java 2007-4-27
 * Copyright 2007 AIC. All rights reserved. 
 */
package components;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;


/**
 * Demonstrating JButton, JToggleButton, JCheckBox, JRadioButton
 * 
 * Note: 
 * 		Their construtors and methods, listeners.
 * 
 * @author Henry Zhu
 */
public class Components2 extends AbstractComponents {

	private static final long serialVersionUID = 1L;

	private JButton button;

	private JToggleButton toggleButton;

	private JCheckBox border, focus;

	private JRadioButton red, green, blue;

	protected void initComponents(Box box) {
//		Icon image = new ImageIcon("logo.gif");
		
		/* =================JButton================== */

		// # JButton constructors
//		button = new JButton();
		button = new JButton("Color");
//		button = new JButton(image);
//		button = new JButton("Color", image);

		// # JButton methods (inherit from AbstractButton)
		button.setActionCommand("Choose color");
		button.setMaximumSize(new Dimension(120, 30));
		
		// # JButton Event Listener
		button.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				
				if (e.getActionCommand().equals("Choose color")) {
					// display JColorChooser with initial color
					Color color = button.getBackground();
					color = JColorChooser.showDialog(Components2.this,
							"Choose a color", color);

					// if choose a color, change button's background color 
					if (color != null)					
						button.setBackground(color);  
				}
			}
		});

		box.add(button);
		box.add(Box.createVerticalStrut(20));

		/* ===============JToggleButton=============== */

		// # JToggleButton constructors
//		toggleButton = new JToggleButton();
//		toggleButton = new JToggleButton("Enabled");
		toggleButton = new JToggleButton("Enabled", true);
		
		// # JToggleButton methods
//		toggleButton.setText(JToggleButton);
//		boolean flag = toggleButton.isSelected();
		toggleButton.setMaximumSize(new Dimension(120, 30));
		
		// # JToggleButton Event Listeners
		toggleButton.addItemListener(new ItemListener() {

			public void itemStateChanged(ItemEvent e) {
				button.setEnabled(toggleButton.isSelected());

//				if (e.getStateChange() == ItemEvent.SELECTED) {
//					System.out.println("ItemEvent.SELECTED");
//				}

			}
			
		});
		
//		toggleButton.addActionListener(new ActionListener() {
//
//			public void actionPerformed(ActionEvent e) {
//				button.setEnabled(toggleButton.isSelected());
//			}
//			
//		});
					
		box.add(toggleButton);
		box.add(Box.createVerticalStrut(20));

		/* ================JCheckBox================= */

		// # JCheckBox constructors
		border = new JCheckBox("Paint border", true);
		focus = new JCheckBox("Focusable", true);	
		
		// # JToggleButton Event Listener
		CheckBoxListener cbl = new CheckBoxListener();		
		border.addItemListener(cbl);
		focus.addItemListener(cbl);
		
		box.add(border);
		box.add(focus);			
		box.add(Box.createVerticalStrut(20));

		/* ===============JRadioButton================ */
		
		ButtonGroup group = new ButtonGroup();
		
		// # JRadioButton constructors
		red = new JRadioButton("Red");
		green = new JRadioButton("Green");
		blue = new JRadioButton("Blue", true);
		
		// # JRadioButton Event Listeners
		red.addItemListener(new RadioButtonListener(Color.RED));
		green.addItemListener(new RadioButtonListener(Color.GREEN));
		blue.addItemListener(new RadioButtonListener(Color.BLUE));
		
		group.add(red);
		group.add(green);
		group.add(blue);
		
		
		box.add(red);
		box.add(green);
		box.add(blue);
		
		box.add(Box.createVerticalStrut(20));

		/* ===============AbstractButton================ */
		
		// # AbstractButton Icon methods
		AbstractButton ab = new JRadioButton();
		ab.setIcon(new ImageIcon("image\\rb.gif"));
		ab.setPressedIcon(new ImageIcon("image\\rbp.gif"));
		ab.setRolloverIcon(new ImageIcon("image\\rbr.gif"));
		ab.setRolloverSelectedIcon(new ImageIcon("image\\rbrs.gif"));
		ab.setSelectedIcon(new ImageIcon("image\\rbs.gif"));
		box.add(ab);
	}

	// Listen to JCheckBox
	private class CheckBoxListener implements ItemListener {

//		private int style = Font.PLAIN;
		
		public void itemStateChanged(ItemEvent e) {
			if (e.getSource() == border) {
				button.setBorderPainted(border.isSelected());
			} else if (e.getSource() == focus) {
				red.setFocusable(focus.isSelected());
			}
		}
		
	}
	
	// Listen to JRadioButton
	private class RadioButtonListener implements ItemListener {

		private Color color;
				
		public RadioButtonListener(Color color) {
			this.color = color;
		}
		
		public void itemStateChanged(ItemEvent e) {
			// if radio button selected, change button's background color 
			if (e.getStateChange() == ItemEvent.SELECTED) {
				button.setBackground(color);
			}
		}
		
	}
	
	/**
	 * 
	 * 
	 * @param title
	 */
	public Components2(String title) {
		// invoke super constructor
		super(title);
	}

	public static void main(String args[]) {
		// create Components2 object
		String title = "Components: JButton, JToggleButton, "
				+ "JRadioButton, JCheckBox";
		new Components2(title);
	}

}

⌨️ 快捷键说明

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