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

📄 optiondialogtest.java

📁 对话框程序员不陌生
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;

public class OptionDialogTest
{
	public static void main(String args[])
	{
		OptionDialogFrame frame=new OptionDialogFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.show();
	}
}
class ButtonPanel extends JPanel
{
	public ButtonPanel(String title,String[] options)
	{
		setBorder(BorderFactory.createTitledBorder
		   (BorderFactory.createEtchedBorder(),title));
		setLayout(new BoxLayout(this,
		  BoxLayout.Y_AXIS));
		group=new ButtonGroup();
		for(int i=0;i<options.length;i++)
		{
			JRadioButton b=new JRadioButton(options[i]);
			b.setActionCommand(options[i]);
			add(b);
			group.add(b);
			b.setSelected(i==0);
		}     
	}
	public String getSelection()
	{
		return group.getSelection().getActionCommand();
	}
	private ButtonGroup group;
	
}
class OptionDialogFrame extends JFrame
{
	public OptionDialogFrame()
	{
		setTitle("OptionDialogTest");
		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
		JPanel gridPanel=new JPanel();
		gridPanel.setLayout(new GridLayout(2,3));
		typePanel=new ButtonPanel("TYPE",
		  new String[]
		  {
		  	"Message",
		  	"Confirm",
		  	"Option",
		  	"Input"
		  
		  });
		messageTypePanel=new ButtonPanel("Message Type",
		 new String[]
		 {
		 	"ERRO_MESSAGE",
		 	"INFORMATION_MESSAGE",
		 	"WARING_MESSAGE",
		 	"QUESTION_MESSAGE",
		 	"PLAIN_MESSAGE"
		 	
		 });
	   messagePanel=new ButtonPanel("Message",
	    new String[]
	    {
	    	"String",
	    	"Icon",
	    	"Component",
	    	"Other",
	    	"object[]"
	    });
	   optionTypePanel=new ButtonPanel("Confirm",
	    new String[]
	    {
	    	"DEFAULT_OPTION",
	    	"YEW_NO_OPTION",
	    	"YES_NO_CANCEL_OPTION",
	    	"OK_CANCEL_OPTION"
	    });
	    optionsPanel=new ButtonPanel("Option",
	    new String[]
	     {
	     	"String[]",
	     	"Icon[]",
	     	"Object[]"
	     });
	     inputPanel=new ButtonPanel("Input",
	      new String[]
	      {
	      	"Text field",
	      	"Combo box"
	      });
	      gridPanel.add(typePanel);
	      gridPanel.add(messageTypePanel); 
	      gridPanel.add(messagePanel);
	      gridPanel.add(optionTypePanel);
	      gridPanel.add(optionsPanel);
	      gridPanel.add(inputPanel);
	      
	      JPanel showPanel=new JPanel();
	      JButton showButton=new JButton("Show");
	      showButton.addActionListener(new ShowAction());
	      showPanel.add(showButton);
	      
	      Container contentPane=getContentPane();
	      contentPane.add(gridPanel,BorderLayout.CENTER);
	      contentPane.add(showPanel,BorderLayout.SOUTH);
	      }
	      
	      public Object getMessage()
	      {
	      	String s=messagePanel.getSelection();
	      	if(s.equals("String"))
	      	  return messageString;
	      	else if(s.equals("Icon"))
	      	 return  messageIcon;
	      	else if(s.equals("Component"))
	      	 return  messageComponent;
	      	else if(s.equals("Object[]"))
	      	 return new Object[]
	      	   {
	      	   	messageString,
	      	   	messageIcon,
	      	   	messageComponent,
	      	   	messageObject
	      	   };
	      	else if(s.equals("Other"))
	      	  return messageObject;
	      	else return null;       
	      }
	  public Object[] getOptions()
	  {
	  	String s=optionsPanel.getSelection();
	  	if(s.equals("String[]"))
	  	  return new String[]
	  	    {
	  	    	"Yellow","BLUE","RED"
	  	    };
	  	 else if(s.equals("Object[]"))
	  	  return new Object[]
	  	  {
	  	  	messageString,
	  	  	messageIcon,
	  	  	messageComponent,
	  	  	messageObject
	  	  
	  	  };
	  	 else if(s.equals("Icon[]"))
	  	   return new Icon[]
	  	  {
	  	  	new ImageIcon("yellow_ball.gif"),
	  	  	new ImageIcon("blue_ball.gif"),
	  	  	new ImageIcon("red_ball.gif")
	  	  };
	  	  else return null;    
	  }
	  public int getType(ButtonPanel panel)
	  {
	  	String s=panel.getSelection();
	  	try{
	  		return JOptionPane.class.getField(s).getInt(null);
	  	}
	  	catch(Exception e)
	  	{
	  		return -1;
	  	}
	  }
	  
	  private class ShowAction implements ActionListener
	  {
	  	public void actionPerformed(ActionEvent evt)
	  	{
	  		if(typePanel.getSelection().equals("Confirm"))
	  		   JOptionPane.showConfirmDialog(
	  		   	 OptionDialogFrame.this,
	  		   	  getMessage(),
	  		   	  "title",
	  		   	  getType(optionTypePanel),
	  		   	  getType(messageTypePanel));
	  		 else if(typePanel.getSelection().equals("Input"))
	  		 {
	  		 	if(inputPanel.getSelection().equals("Text field"))
	  		 	 JOptionPane.showInputDialog(
	  		 	 	OptionDialogFrame.this,
	  		 	 	getMessage(),
	  		 	 	"Title",
	  		 	 	getType(messageTypePanel));
	  		 else 
	  		  JOptionPane.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(optionTypePanel),
	  		   	 	getType(messageTypePanel),
	  		   	 	null,
	  		   	 	getOptions(),
	  		   	 	getOptions()[0]); 
	  		  	 	 	
	  		 	 	
	  		 }  	  
	  	}
	  	public static final int DEFAULT_WIDTH=600;
	  	
	  	public static final int DEFAULT_HEIGHT=400;
	  	private ButtonPanel typePanel;
	  	private ButtonPanel messagePanel;
	  	private ButtonPanel messageTypePanel;
	  	private ButtonPanel optionTypePanel;
	  	private ButtonPanel optionsPanel;
	  	private ButtonPanel inputPanel;
	  	private String messageString="Message";
	  	private Icon messageIcon=new ImageIcon("blue_ball.gif");
	  	private Object messageObject=new Date();
	  	private Component messageComponent=new SamplePanel();
	  }
	  class SamplePanel extends JPanel
	  {
	  	public void paintComponent(Graphics g)
	  	{
	  		super.paintComponent(g);
	  		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 getMinimumSize()
	  	{
	  		return new Dimension(10,10);
	  	}
	  }
	      	   
	
	

⌨️ 快捷键说明

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