package com.main;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JframeDeom {
JFrame jframe=new JFrame("JFrame组件");
JMenuBar jmenuBar= new JMenuBar();
//菜单
JMenu fileMenu= new JMenu("文件");
JMenu editMenu= new JMenu("编辑");
//菜单项
JMenuItem auto=new JMenuItem("自动换行");
JMenuItem cope=new JMenuItem("复制",new ImageIcon("C:\\Users\\Administrator\\IdeaProjects\\Tanqiu\\img\\a.png"));
JMenuItem paste=new JMenuItem("粘贴",new ImageIcon("C:\\Users\\Administrator\\IdeaProjects\\Tanqiu\\img\\copy.png"));
//菜单
JMenu formatMenu=new JMenu("格式");
JMenuItem comment=new JMenuItem("注释");
JMenuItem cancelComment=new JMenuItem("取消注释");
//生命文本域
JTextArea ta=new JTextArea(8,20);
//声明列表框
String []colorString={"红色","绿色","蓝色"};
JList<String> colorList=new JList<>(colorString);
//声明选择相关组件
JComboBox<String> colorSelect=new JComboBox<>();
//创建按钮组
ButtonGroup bg=new ButtonGroup();
JRadioButton male=new JRadioButton("男",false);
JRadioButton female=new JRadioButton("女",true);
//复选框
JCheckBox isMarid=new JCheckBox("是否已婚?",true);
//声明底部
JTextField tf=new JTextField(40);
ImageIcon image= new ImageIcon("C:\\Users\\Administrator\\IdeaProjects\\Tanqiu\\img\\come.png");
JButton ok=new JButton("确认",image);
//声明右侧菜单
JPopupMenu jPopupMenu=new JPopupMenu();
ButtonGroup popupButton=new ButtonGroup();
JRadioButtonMenuItem metal=new JRadioButtonMenuItem("metal 风格");
JRadioButtonMenuItem Nimbus=new JRadioButtonMenuItem("Nimbus 风格");
JRadioButtonMenuItem Windows=new JRadioButtonMenuItem("Windows 风格",true);
JRadioButtonMenuItem Motif=new JRadioButtonMenuItem("Motif 风格");
public void init(){
//组装试图
//组装底部
JPanel bootmPanel=new JPanel();
bootmPanel.add(tf);
bootmPanel.add(ok);
jframe.add(bootmPanel, BorderLayout.SOUTH);
//组装选择相关的组件
JPanel selectPanel=new JPanel();
colorSelect.addItem("红色");
colorSelect.addItem("绿色");
colorSelect.addItem("蓝色");
selectPanel.add(colorSelect);
bg.add(male);
bg.add(female);
selectPanel.add(male);
selectPanel.add(female);
selectPanel.add(isMarid);
//组装文本域和选择相关组件
Box Left = Box.createVerticalBox();
Left.add(ta);
Left.add(selectPanel);
//组装顶部
Box horizontalBox = Box.createHorizontalBox();
horizontalBox.add(Left);
horizontalBox.add(colorList);
jframe.add(horizontalBox);
//组装顶部菜单
formatMenu.add(comment);
formatMenu.add(cancelComment);
editMenu.add(auto);
editMenu.addSeparator();
editMenu.add(cope);
editMenu.add(paste);
editMenu.addSeparator();
editMenu.add(formatMenu);
jmenuBar.add(fileMenu);
jmenuBar.add(editMenu);
jframe.setJMenuBar(jmenuBar);
//组装右键菜单
popupButton.add(metal);
popupButton.add(Nimbus);
popupButton.add(Windows);
popupButton.add(Motif);
ActionListener actionListener=new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//当前选择的是哪一个动作
String actionCommand = e.getActionCommand();
try {
chageFlavor(actionCommand);
} catch (Exception ex) {
ex.printStackTrace();
}
}
};
metal.addActionListener(actionListener);
Nimbus.addActionListener(actionListener);
Windows.addActionListener(actionListener);
Motif.addActionListener(actionListener);
jPopupMenu.add(metal);
jPopupMenu.add(Nimbus);
jPopupMenu.add(Windows);
jPopupMenu.add(Motif);
//不需要监听鼠标事件了
ta.setComponentPopupMenu(jPopupMenu);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.pack();
jframe.setVisible(true);
}
//定义一个方法来修改外观
private void chageFlavor(String command)throws Exception{
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 "Motif 风格":
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
break;
default:
System.out.println("我i");
break;
}
//刷新组件的外观
SwingUtilities.updateComponentTreeUI(jframe.getContentPane());
SwingUtilities.updateComponentTreeUI(jmenuBar);
SwingUtilities.updateComponentTreeUI(jPopupMenu);
}
public static void main(String[] args) {
new JframeDeom().init();
}
}
网友评论