案例:
public class exer1 { JFrame s=new JFrame("练习"); //菜单 JMenuBar jMenuBar=new JMenuBar(); JMenu wenjian=new JMenu("文件"); JMenu bianji=new JMenu("编辑"); JMenuItem zidong=new JMenuItem("自动换行"); JMenuItem fuzhi=new JMenuItem("复制"); JMenuItem zhantie=new JMenuItem("粘贴"); JMenu geshi=new JMenu("格式"); JMenuItem zhushi=new JMenuItem("注释"); JMenuItem quxiao=new JMenuItem("取消注释"); //文本域 JTextArea text=new JTextArea(10,30); //列表 String[] ss={"红色","白色","紫色"}; JListcolorlist=new JList<>(ss); //组件 JComboBox colorselect=new JComboBox<>(ss); ButtonGroup bg=new ButtonGroup(); JRadioButton b1=new JRadioButton("男",true);//默认选中 JRadioButton b2=new JRadioButton("女",false); //复选框 JCheckBox checkBox=new JCheckBox("是否已婚",true); //最下方 JTextField tf=new JTextField(40); JButton button=new JButton("确定",new ImageIcon("D:\\idea\\project\\pro1\\exercise1\\src\\ok.png")); //声明鼠标右键点击的菜单 JPopupMenu popupMenu=new JPopupMenu(); ButtonGroup bb=new ButtonGroup(); JRadioButtonMenuItem metal=new JRadioButtonMenuItem("metal风格"); JRadioButtonMenuItem nimbus=new JRadioButtonMenuItem("nimbus风格"); JRadioButtonMenuItem windows=new JRadioButtonMenuItem("windows风格"); JRadioButtonMenuItem windoowsclassic=new JRadioButtonMenuItem("windows经典风格"); JRadioButtonMenuItem motif=new JRadioButtonMenuItem("motif经典风格"); public void init(){ //开始组装 JPanel p1=new JPanel(); p1.add(tf); p1.add(button); s.add(p1,BorderLayout.SOUTH); //关于选择的组件 JPanel selectpanel=new JPanel(); selectpanel.add(colorselect); bg.add(b1); bg.add(b2); selectpanel.add(b1); selectpanel.add(b2); selectpanel.add(checkBox); //文本域和选择相关 Box topleft=Box.createVerticalBox(); topleft.add(text); topleft.add(selectpanel); //组装顶部 Box top=Box.createHorizontalBox(); top.add(topleft); top.add(colorlist); s.add(top); //开始组装顶部菜单 geshi.add(zhushi); geshi.add(quxiao); bianji.add(zidong); //加横线 bianji.addSeparator(); bianji.add(fuzhi); bianji.add(zhantie); //加横线 bianji.addSeparator(); bianji.add(geshi); jMenuBar.add(wenjian); jMenuBar.add(bianji); s.setJMenuBar(jMenuBar); //组装鼠标右键菜单 popupMenu.add(metal); popupMenu.add(nimbus); popupMenu.add(windows); popupMenu.add(windoowsclassic); popupMenu.add(motif); ActionListener listener=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //当前选择的是哪种风格 String ss=e.getActionCommand(); try { change(ss); } catch (UnsupportedLookAndFeelException unsupportedLookAndFeelException) { unsupportedLookAndFeelException.printStackTrace(); } catch (ClassNotFoundException classNotFoundException) { classNotFoundException.printStackTrace(); } catch (InstantiationException instantiationException) { instantiationException.printStackTrace(); } catch (IllegalAccessException illegalAccessException) { illegalAccessException.printStackTrace(); } } }; metal.addActionListener(listener); nimbus.addActionListener(listener); windows.addActionListener(listener); windoowsclassic.addActionListener(listener); motif.addActionListener(listener); popupMenu.add(metal); popupMenu.add(nimbus); popupMenu.add(windows); popupMenu.add(windoowsclassic); popupMenu.add(motif); //添加在文本区域右键出现菜单,这个不用在判断,直接设置即可 text.setComponentPopupMenu(popupMenu); //关闭程序 s.setDefaultCloseOperation(3); s.pack(); s.setVisible(true); } private void change(String command) throws UnsupportedLookAndFeelException, ClassNotFoundException, InstantiationException, IllegalAccessException { //定义的这个方法用来改变界面风格 switch (command){ case "metal风格": UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); break; case "nimbus风格": UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); break; case "windows风格": UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); break; case "windows经典风格": UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"); break; case "motif风格": UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel"); break; } //刷新组件的外观 SwingUtilities.updateComponentTreeUI(s.getContentPane()); SwingUtilities.updateComponentTreeUI(popupMenu); SwingUtilities.updateComponentTreeUI(jMenuBar); } }
猜你喜欢
- 16天前(屿见不一样是哪个酒店)屿见白纱,遇见自己 “佳能PhotoGirls屿见白纱”摄影派对玩转海岛
- 16天前(天气预报 华为)2025HDC华为天气上新系统级天气智能体,引领更智能的气象服务
- 16天前(纳米比亚旅游报价)纳米比亚旅游局2024年中国推介会圆满落幕
- 16天前(澳涞坞是什么)从最美山庄到世界舞台:澳涞山庄见证世界十佳旅居城市评选
- 16天前(澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布)澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布
- 16天前(澳涞坞是什么)从本土品牌到全球舞台:澳涞山庄获国际顶级产业资源加持
- 16天前(当科学邂逅喜剧:科技馆喜剧嘉年华背后的"文旅破壁者")当科学邂逅喜剧:科技馆喜剧嘉年华背后的"文旅破壁者"
- 16天前(希尔顿集团2021年筹建的酒店)希尔顿集团两大重点项目亮相第四届上海旅游投资促进大会
- 16天前(美诺酒店集团旗下臻选品牌m collection)美诺酒店集团启动盛橡品牌战略焕新 开启全球扩张新篇章
- 16天前(海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章