import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButton;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
public class SwingComponent {
JFrame f=new JFrame("测试");
Icon okIcon=new ImageIcon("ico/ok.png");
JButton ok=new JButton("确认",okIcon);
JRadioButton male=new JRadioButton("男",true);
JRadioButton female=new JRadioButton("女",false);
ButtonGroup bg=new ButtonGroup();
JCheckBox married=new JCheckBox("是否已婚?",false);
String[] colors=new String[]{"红色","绿色","蓝色"};
JComboBox<String> colorChooser=new JComboBox<>(colors);
JList<String> colorList=new JList<>(colors);
JTextArea ta=new JTextArea(8,20);
JTextField name=new JTextField(40);
JMenuBar mb=new JMenuBar();
JMenu file=new JMenu("文件");
JMenu edit=new JMenu("编辑");
Icon newIcon=new ImageIcon("ico/new.png");
JMenuItem newItem=new JMenuItem("新建",newIcon);
Icon saveIcon=new ImageIcon("ico/save.png");
JMenuItem saveItem=new JMenuItem("保存",saveIcon);
Icon exitIcon=new ImageIcon("ico/exit.png");
JMenuItem exitItem=new JMenuItem("退出",exitIcon);
JCheckBoxMenuItem autoWrap=new JCheckBoxMenuItem("自动换行");
JMenuItem copyItem=new JMenuItem("复制",new ImageIcon("ico/copy.png"));
JMenuItem pasteItem=new JMenuItem("粘贴",new ImageIcon("ico/paste.png"));
JMenu format=new JMenu("格式");
JMenuItem commentItem=new JMenuItem("注释");
JMenuItem cancelItem=new JMenuItem("取消注释");
JPopupMenu pop=new JPopupMenu();
ButtonGroup flavorGroup=new ButtonGroup();
JRadioButtonMenuItem metalItem=new JRadioButtonMenuItem("Metal风格",true);
JRadioButtonMenuItem nimbusItem=new JRadioButtonMenuItem("Nimbus风格");
JRadioButtonMenuItem windowsItem=new JRadioButtonMenuItem("Windows风格");
JRadioButtonMenuItem classicItem=new JRadioButtonMenuItem("Windows经典风格");
JRadioButtonMenuItem motifItem=new JRadioButtonMenuItem("Motif风格");
public void init(){
JPanel bottom=new JPanel();
bottom.add(name);
bottom.add(ok);
f.add(bottom,BorderLayout.SOUTH);
JPanel checkPanel=new JPanel();
checkPanel.add(colorChooser);
bg.add(male);
bg.add(female);
checkPanel.add(male);
checkPanel.add(female);
checkPanel.add(married);
Box topLeft=Box.createVerticalBox();
JScrollPane taJsp=new JScrollPane(ta);
topLeft.add(taJsp);
topLeft.add(checkPanel);
Box top=Box.createHorizontalBox();
top.add(topLeft);
top.add(colorList);
f.add(top);
newItem.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK));
file.add(newItem);
file.add(saveItem);
file.add(exitItem);
edit.add(autoWrap);
edit.addSeparator();
edit.add(copyItem);
edit.add(pasteItem);
commentItem.setToolTipText("将程序代码注释起来!");
format.add(commentItem);
format.add(cancelItem);
edit.add(new JMenuItem("-"));
edit.add(format);
mb.add(file);
mb.add(edit);
f.setJMenuBar(mb);
flavorGroup.add(metalItem);
flavorGroup.add(nimbusItem);
flavorGroup.add(windowsItem);
flavorGroup.add(classicItem);
flavorGroup.add(motifItem);
pop.add(metalItem);
pop.add(nimbusItem);
pop.add(windowsItem);
pop.add(classicItem);
pop.add(motifItem);
ta.setComponentPopupMenu(pop);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
public static void main(String [] args){
new SwingComponent().init();
}
}