ITEEDU

swing的版面结构

版面管理器

事件处理

鼠标事件

键盘事件处理

窗口与面板的使用

JInternalFrame的使用(窗口与面板)

JTabbedPane,JScroolPane,JScrolBa的使用

标签与按钮的使用与介绍

[复选框、选项按钮、列表方框、下拉式列表的使用与介绍]

表格(Table)的使用与介绍

JTable的事件处理

1文字输入组件的使用与介绍

树(Tree)的使用与介绍

对话框(Option Pane与Dialog)的使用与介绍

菜单与工具栏的使用与介绍

文件选择对话框,颜色选择对话框,分隔线的使用与介绍.

Slider,Timer,Progress的使用

11-3:使用JOptionPane组件建立对话框:

我们在11-2节中已经介绍了JOptionPane的构造函数,虽然大部份的情况下我们只需要使用JOptionPane的静态方法来产生对话框 ,但如果你想直接使用JOptionPane对象来产生对话框,当然也可以.下面我们就举一个以JOptionPane对象产生对话框的范例:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import com.incors.plaf.alloy.*;
import com.incors.plaf.alloy.themes.glass.*;

public class OptionPaneDemo implements ActionListener {
	JFrame f = null;
	JLabel label = null;

	public OptionPaneDemo() {
		f = new JFrame("OptionPane Demo");
		Container contentPane = f.getContentPane();

		JButton b = new JButton("Show Text Input");
		b.addActionListener(this);

		label = new JLabel(" ", JLabel.CENTER);
		contentPane.add(label, BorderLayout.NORTH);
		contentPane.add(b, BorderLayout.CENTER);
		f.pack();
		f.setVisible(true);

		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}

	public static void main(String[] args) {
		SwingUtil.setLookAndFeel();
		new OptionPaneDemo();
	}

	public void actionPerformed(ActionEvent e) {
		String title = "Input Dialog";
		JLabel message = new JLabel("您最喜欢吃什么食物?", JLabel.CENTER);
		int messageType = JOptionPane.QUESTION_MESSAGE;
		int optionType = JOptionPane.OK_CANCEL_OPTION;
		String result = "";

		// 利用message,messageType,optionType来建立JOptionPane对象
		JOptionPane optionPane = new JOptionPane(message, messageType,
				optionType);

		// 利用JOptionPane的setWandtsInput()方法,使对话框有一个输入字段让用户输入信息
		optionPane.setWantsInput(true);

		// 利用JOptionPane的setInitialSelectionValue()方法,使得输入字段上的初始值为"请输入";
		optionPane.setInitialSelectionValue("请输入!");

		// 利用JOptionPane的setInputValue()方法,使得当用户按下"Cancel"键或关闭对话框时,result的默认字符串为
		// "你没有输入";
		optionPane.setInputValue("您没有输入!");
		JDialog dialog = optionPane.createDialog(f, title);
		dialog.show();

		// JOptionPane的getInputValue()方法可以取得用户输入的信息.
		result = (String) optionPane.getInputValue();

		label.setText("您输入:" + result);
	}
}

class SwingUtil {
	public static final void setLookAndFeel() {
		try {
			Font font = new Font("JFrame", Font.PLAIN, 12);
			Enumeration keys = UIManager.getLookAndFeelDefaults().keys();

			while (keys.hasMoreElements()) {
				Object key = keys.nextElement();
				if (UIManager.get(key) instanceof Font) {
					UIManager.put(key, font);
				}
			}
			AlloyLookAndFeel.setProperty("alloy.isLookAndFeelFrameDecoration",
					"true");
			AlloyTheme theme = new GlassTheme();
			LookAndFeel alloyLnF = new AlloyLookAndFeel(theme);
			UIManager.setLookAndFeel(alloyLnF);
		} catch (UnsupportedLookAndFeelException ex) {
			ex.printStackTrace();
		}
	}
}