java中对话框例子的讲解

来源:互联网 发布:centos git 配置 编辑:程序博客网 时间:2024/05/09 01:47
java中对话框例子的讲解

java中对话框例子的讲解
java中对话框例子的讲解

java中对话框例子的讲解

源代码参考:
package optionDialog;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Rectangle2D;
import java.util.Date;

import javax.swing.*;

public class OptionDialog {

public static void main(String[] args) {
OptionDialogFrame odf=new OptionDialogFrame();
odf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
odf.setVisible(true);
odf.setTitle("OptionDialogFrame");
}

}
class OptionDialogFrame extends JFrame{
private ButtonPanel typePanel;
private ButtonPanel messageTypePanel;
private ButtonPanel messagePanel;
private ButtonPanel confirmPanel;
private ButtonPanel optionsPanel;
private ButtonPanel inputPanel;
private String messageString = "Message";
private Icon messageIcon = newImageIcon("blue-ball.gif");
private Object messageObject = new Date();
private Component messageComponent = newSampleComponent();
public OptionDialogFrame(){
JPanel gridPanel=new JPanel();
gridPanel.setLayout(new GridLayout(2,3));
typePanel=newButtonPanel("Type","Message","Confirm","Option","Input");
messageTypePanel=new ButtonPanel("MessageType","ERROR_MESSAGE","INFORMATION_MESSAGE","WATNING_MESSAGE","QUESTION_MESSAGE","PLAIN_MESSAGE");
messagePanel=newButtonPanel("Message","String","Icon","Component","Other","Object[]");
confirmPanel=newButtonPanel("Confirm","DEFAULT_OPTION","YES_NO_OPTION","YES_NO_CANCEL_OPTION","OK_CANCEL_OPTION");
optionsPanel=newButtonPanel("Option","String[]","Icon[]","Object[]");
inputPanel=new ButtonPanel("Input","Text field","Combobox");
gridPanel.add(typePanel);
gridPanel.add(messageTypePanel);
gridPanel.add(messagePanel);
gridPanel.add(confirmPanel);
gridPanel.add(optionsPanel);
gridPanel.add(inputPanel);
JPanel showPanel=new JPanel();
JButton showButton=new JButton("Show");
showButton.addActionListener(new ShowAction());
showPanel.add(showButton);
add(gridPanel,BorderLayout.CENTER);
add(showPanel,BorderLayout.SOUTH);
pack();
}
  public Object getMessage()
  {
     Strings = messagePanel.getSelection();
     if(s.equals("String")) return messageString;
     elseif (s.equals("Icon")) return messageIcon;
     elseif (s.equals("Component")) return messageComponent;
     elseif (s.equals("Object[]")) return new Object[] { messageString,messageIcon,
         messageComponent, messageObject };
     elseif (s.equals("Other")) return messageObject;
     elsereturn null;
  }

 
  public Object[] getOptions()
  {
     Strings = optionsPanel.getSelection();
     if(s.equals("String[]")) return new String[] { "Yellow", "Blue","Red" };
     elseif (s.equals("Icon[]")) return new Icon[] { newImageIcon("yellow-ball.gif"),
          newImageIcon("blue-ball.gif"), new ImageIcon("red-ball.gif") };
     elseif (s.equals("Object[]")) return new Object[] { messageString,messageIcon,
         messageComponent, messageObject };
     elsereturn null;
  }

 
  public int getType(ButtonPanel panel)
  {
     Strings = panel.getSelection();
    try
    {
       returnJOptionPane.class.getField(s).getInt(null);
    }
     catch(Exception e)
    {
       return -1;
    }
  }

 
  private class ShowAction implementsActionListener
  {
     publicvoid actionPerformed(ActionEvent event)
    {
       if (typePanel.getSelection().equals("Confirm"))JOptionPane.showConfirmDialog(
            OptionDialogFrame.this, getMessage(), "Title",getType(confirmPanel),
            getType(messageTypePanel));
       else if(typePanel.getSelection().equals("Input"))
       {
          if(inputPanel.getSelection().equals("Text field"))JOptionPane.showInputDialog(
              OptionDialogFrame.this, getMessage(), "Title",getType(messageTypePanel));
          elseJOptionPane.showInputDialog(OptionDialogFrame.this, getMessage(),"Title",
              getType(messageTypePanel), null, new String[] {"Yellow", "Blue", "Red" },
              "Blue");
       }
       else if(typePanel.getSelection().equals("Message"))JOptionPane.showMessageDialog(
            OptionDialogFrame.this, getMessage(), "Title",getType(messageTypePanel));
       else if(typePanel.getSelection().equals("Option"))JOptionPane.showOptionDialog(
            OptionDialogFrame.this, getMessage(), "Title",getType(confirmPanel),
            getType(messageTypePanel), null, getOptions(),getOptions()[0]);
    }
  }
}


class SampleComponent extends JComponent
{
  public void paintComponent(Graphicsg)
  {
    Graphics2D g2 = (Graphics2D) g;
    Rectangle2D rect = new Rectangle2D.Double(0, 0,getWidth() - 1, getHeight() - 1);
    g2.setPaint(Color.YELLOW);
    g2.fill(rect);
    g2.setPaint(Color.BLUE);
    g2.draw(rect);
  }

  public Dimension getPreferredSize()
  {
     returnnew Dimension(10, 10);
  }
}


class ButtonPanel extends JPanel{
private ButtonGroup group;
public ButtonPanel(String title,String... options){
setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),title));
//设置单个面板内的组件垂直
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
group=new ButtonGroup();
for (String option: options) {
JRadioButton b=new JRadioButton(option);
b.setActionCommand(option);
add(b);
group.add(b);
b.setSelected(option==options[0]);
}
}
public String getSelection(){
return group.getSelection().getActionCommand();
}
}
0 0
原创粉丝点击