package ming; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import javax.swing.*; public class TestFrame { JFrame f = new JFrame("testing"); // 定义一个按钮,并为它设置图标 Icon okIcon = new ImageIcon("/Icon/anydo.png"); JButton bnt_ok = new JButton("yes", okIcon); // 定义一个单选按钮 JRadioButton male = new JRadioButton("male"); JRadioButton female = new JRadioButton("female"); // 将单选按钮组合一起 ButtonGroup bg = new ButtonGroup(); // 定义复选按钮框 JCheckBox married = new JCheckBox("have been married?", false); String[] colors = new String[] { "Red", "Green", "Blue" }; // 定义一个下拉选择框 JComboBox<String> colorChooser = new JComboBox<String>(colors); // 定义一个列表选择框 JList<String> colorList = new JList<String>(colors); // 定义一个8行 20列 多行文本域 JTextArea ta = new JTextArea(8, 20); // 定义一个40列的文本域 JTextField name = new JTextField(40); JMenuBar mb = new JMenuBar(); JMenu file = new JMenu("file"); JMenu edit = new JMenu("edit"); // 创建“新建” 菜单项 Icon newIcon = new ImageIcon("/Icon/soundhound.png"); JMenuItem newItem = new JMenuItem("NEW", newIcon); // 创建保存 菜单项 Icon saveIcon = new ImageIcon("/Icon/messenger.png"); JMenuItem saveItem = new JMenuItem("SAVE", saveIcon); // 创建退出菜单项 Icon exitIcon = new ImageIcon("/Icon/contact.png"); JMenuItem exitItem = new JMenuItem("EXIT", exitIcon); // 创建自动换行 JCheckBoxMenuItem autoWrap = new JCheckBoxMenuItem("auto wrap"); // 创建复制 菜单项 JMenuItem copyItem = new JMenuItem("COPY", new ImageIcon( "/Icon/playstore.png")); // 创建黏贴 菜单项 JMenuItem pasteItem = new JMenuItem("COPY", new ImageIcon( "/Icon/playstore.png")); JMenu format = new JMenu("format"); JMenuItem commentItem = new JMenuItem("COMMENT", new ImageIcon( "/Icon/playstore.png")); JMenuItem cancelItem = new JMenuItem("CANCEL COMMENT", new ImageIcon( "/Icon/playstore.png")); // 定义一个右键菜单,设置程序风格 JPopupMenu pop = new JPopupMenu(); ButtonGroup flavorGroup = new ButtonGroup(); // 5个单选框用于设置风格 JRadioButtonMenuItem metailItem = new JRadioButtonMenuItem("metail", true); JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem("nimbus"); JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem("windows"); JRadioButtonMenuItem classicItem = new JRadioButtonMenuItem("classic"); JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("motif"); public void init() { // 创建装载文本框的Panel JPanel buttom = new JPanel(); buttom.add(name); buttom.add(bnt_ok); f.add(buttom, BorderLayout.NORTH); // 装载下拉选择框,3个JCheckBox的JPanel JPanel checkPanel = new JPanel(); checkPanel.add(colorChooser); bg.add(male); bg.add(female); checkPanel.add(male); checkPanel.add(female); checkPanel.add(married); // 创建一个垂直排列组建的BOX 装JPanel Box topLeft = Box.createVerticalBox(); // 使用JScrollPan 作为普通组建的JViewPort JScrollPane taJsp = new JScrollPane(ta); topLeft.add(taJsp); topLeft.add(checkPanel); //创建水平排了组件的BOX,装topLeft, colorList Box top = Box.createHorizontalBox(); top.add(topLeft); top.add(colorList); //top加载到窗口中间 f.add(top); //组合菜单,并添加监听器 //newItem设置快捷键事要用大写字母 newItem.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK)); newItem.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { ta.append("user clicked new item "); } }); //为file菜单添加菜单项 file.add(newItem); file.add(saveItem); file.add(exitItem); //为edit菜单添加菜单项 edit.add(autoWrap); //添加分割线 edit.addSeparator(); edit.add(copyItem); edit.add(pasteItem); //为commentIteam添加提示信息 commentItem.setToolTipText("comment the code"); //为format添加菜单项目 format.add(commentItem); format.add(cancelItem); //使用 new JMenuItem("-") 不能添加菜单分隔符 edit.add(new JMenuItem("-")); //format添加到edit,形成二级菜单 edit.add(format); //add file,edit item to Menu mb.add(file); mb.add(edit); //为f设置菜单条 f.setJMenuBar(mb); //右键组合菜单,并安装右键菜单 flavorGroup.add(metailItem); flavorGroup.add(nimbusItem); flavorGroup.add(windowsItem); flavorGroup.add(classicItem); flavorGroup.add(motifItem); pop.add(metailItem); pop.add(nimbusItem); pop.add(windowsItem); pop.add(classicItem); pop.add(motifItem); ActionListener flavorListener = new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { try{ switch(e.getActionCommand()){ case "metail": changeFlavor(1); break; case "nimbusItem": changeFlavor(2); break; case "windows": changeFlavor(3); break; case "classic": changeFlavor(4); break; case "motifItem": changeFlavor(5); break; } }catch(Exception ee){ ee.printStackTrace(); } } private void changeFlavor(int i) { } }; //设置5个风格的监控事件 metailItem.addActionListener(flavorListener); nimbusItem.addActionListener(flavorListener); windowsItem.addActionListener(flavorListener); classicItem.addActionListener(flavorListener); motifItem.addActionListener(flavorListener); //方法设置右键菜单 ta.setComponentPopupMenu(pop); //设置关闭窗口时退出程序 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.pack(); f.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub //默认风格 JFrame.setDefaultLookAndFeelDecorated(true); new TestFrame().init(); } }