JOptionPane类提供了几个可用于创建标准对话框的方法。标准对话框是一个小窗口,用于询问问题、向用户发出警告或提供重要消息。下面是JOptionPane提供的4个标准对话框类:
调用showConfirmDialog(Component,Object)
该方法返回下列5个可能的整数值之一:
YES_OPTION, NO_OPTION, CANCEL_OPTION,OK_OPTION和CLOSED_OPTION
eg:
showConfirmDialog(Component,Object,string,int,int)
//后三个参数:
//string: 将显示在对话框标题栏中的字符串
//int :指出将显示哪些选项按钮,应为类常量 YES_NO_CANCEL_OPTION或YES_NO_OPTION;
// int:一个描述对话框类型的整数,值为类变量ERROR_MESSAGE、INFORMATION_MESSAGE、PLAIN_MESSAGE、QUESTION_MESSAGE或WARNING_MESSAGE
int response=JOptionPane.showConfirmDialog(null,
"Error reading file. Want to try again?",
"FIle Input Error",
JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE);
输入对话框询问一个问题,并使用文本框来存储用户的响应。要调用输入对话框,最简单的方式是调用方法showInputDialog(Component,Object).
showInputDialog(Component,Object,String,int)
// 方法倒数两个参数与上述确认对话框方法第三个和第五个参数相同
String response =JOptionPane.showInputDialog(null,
"What is your ZIP code?",
"Enter ZIP Code",
JOptionPane.QUESTION_MESSAGE);
消息对话框是一个显示信息的简单窗口,可使用showMessageDialog(Component,Object)来创建。也可以使用方法showMessageDialog(Component,Object,String,int)来创建消息对话框,只是不返回任何值。
JOptionPane.showMessageDialog(null,
"An asteroid has destroyed the earth.",
"Asteroid Destruction Alert",
JOptionPane.WARING_MESSAGE);
选择对话框,它融其他所有对话框的特性于一体。这种对话框可使用方法showOptionDialog(Component,Object,String,int,int,Icon,Object[],Object)来创建。
String[] gender={
"Male",
"Female",
"None of Your Business"
};
int response = JOptionPane.showOptionDialog(null,
"What is your gender?",
"Gender",
0,
JOptionPane.INFORMATION_MESSAGE,
null,
gender,
gender[2]);
System.out.println("You chose "+gender[response]);
import java.awt.GridLayout;
import javax.swing.*;
public class FeedInfo extends JFrame{
private JLabel nameLabel = new JLabel("Name: ",SwingConstants.RIGHT);
private JTextField name;
private JLabel urlLabel = new JLabel("URL: ",SwingConstants.RIGHT);
private JTextField url;
private JLabel typeLabel = new JLabel("Type: ",SwingConstants.RIGHT);
private JTextField type;
public FeedInfo(){
super("Feed Information");
setSize(400,145);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLookAndFeel();
// Site name
String response1=JOptionPane.showInputDialog(null,"Enter the site name:");
name = new JTextField(response1,20);
// site address
String response2 = JOptionPane.showInputDialog(null,"Enter the size address:");
url = new JTextField(response2,20);
// site type
String[] choices = {"Personal","Commercial","Unknown"};
int response3 = JOptionPane.showOptionDialog(null,
"What type of site is it?",
"Site Type",
0,
JOptionPane.QUESTION_MESSAGE,
null,
choices,
choices[0]);
type = new JTextField(choices[response3],20);
setLayout(new GridLayout(3,2));
add(nameLabel);
add(name);
add(urlLabel);
add(url);
add(typeLabel);
add(type);
setLookAndFeel();
setVisible(true);
}
private void setLookAndFeel(){
try{
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
}catch (Exception exc){
System.err.println("Couldn't use the system "+"look and feel: "+exc);
}
}
public static void main(String[] args) {
FeedInfo frame=new FeedInfo();
}
}
在Swing中,滑块是使用类JSlider来实现的,它让用户能够通过滑动控制来设置一个位于最大值和最小值之间的值。很多时候都可以使用滑块来获取数字输入,其优点是能够限制可输入的值。
默认情况下,滑块是水平方向的,但可以使用接口SwingConstants的两个类常量(HORIZONTSL和VERTICAL)来显示地设置其方向。
下面是几个JSlider的方法:
import javax.swing.*;
public class Slider extends JFrame{
public Slider(){
super("Slider");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLookAndFeel();
JSlider pick=new JSlider(JSlider.HORIZONTAL,0,30,5);
pick.setMajorTickSpacing(10);
pick.setMinorTickSpacing(1);
pick.setPaintTicks(true);
pick.setPaintLabels(true);
add(pick);
pack();
setVisible(true);
}
private void setLookAndFeel(){
try{
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
}catch(Exception exc){
System.err.println("Counldn't use the system "+"look and feel: "+exc );
}
}
public static void main(String[] args) {
Slider frame=new Slider();
}
}
可以使用构造函数ScrollPane(Object)来创建滚动窗格,其中Object表示能被滚动的组件。
JTextArea textBox = new JTextArea(7,30);
JScrollPane scroller = new JScrollPane(textBox);
mainPane.add(Scroller);
JScrollPane scroller =new JScrollPane(textBox,
VERTICAL_SCROLLBAR_ALWAYS,
HORIZONTAL_SCROLLBAR_NEVER);
在Swing中,使用JToolBar类来创建工具栏,后者是一个容器,它将多个组件组织为一行或一列。被组织的通常是按钮。
很多时候工具栏是水平的,但可以使用接口SwingConstants的类常量HORIZONTAL或VERTICAL来显示地设置其方向。
构造函数包括:
Swing的工具栏也可停放到新窗口内,从而与原来的窗口分离。为了获得最佳结果,应使用布局管理器类BorderLayout将可停放的JToolBar组件放置到容器中。边界布局将容器分为5个区域:北、南、东、西、中,其中每个有方向的组件都占据了它所需的空间,剩下的分配给中央区域。
在Swing中,进度条是使用类JProgressBar实现的。
构造函数包括
可以使用接口SwingConstants的类常量HORIZONTAL或VERTICAL来显示地设置其方向。
setMinimum(int)
setMaximum(int)
// 设置最小值和最大值。
setValue(int)
// 指定一个当前进度的值传递给它
setStringPainted(boolean)
// 设置标签显示已完成的任务比例,若为false不显示该标签
在java中,3种组件协同工作来支持菜单
JMenuItem(String)
JMenuItem(Icon)
JMenuItem(String,Icon)
// 构造函数
addSeparator()
// 将分隔条加入到菜单末尾
setJMenuBar(JMenuBar)
// 调用框架的setJMenuBar(JMenuBar)方法
选项卡式窗格是一组堆叠在一起的面板,用户每次只能查看其中的一个,在Swing中,这是由JTabbedPane类实现的
选项卡的布局参数有:JTabblePane.TOP、JTabblePane.BOTTOM、JTabblePane.LEFT或JTabbedPane.RIGHT
使用JTabbedPane.WRAP_TAB_LAYOUT来设置不滚动的选项卡式窗格,
使用JTabbedPane.SCROLL_TAB_LAYOUT来设置标签旁显示滚动箭头
创建选项卡式窗格后,调用addTab(String,Componet)方法来加入组件。其中String是标签显示的文本,而第二个参数是一个组件,它是窗格的选项卡之一,通常这是一个JPanel对象,但并非必须如此。