窗口界面
package com.fsasad;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class OtherFunction {
JFrame f = new JFrame("其它功能");
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenu editMenu = new JMenu("编辑");
JMenuItem auto = new JMenuItem("自动换行");
JMenuItem copy = new JMenuItem("复制");
JMenuItem paste = new JMenuItem("粘贴");
JMenu formatMenu = new JMenu("格式");
JMenuItem comment = new JMenuItem("注释");
JMenuItem cancelComment = new JMenuItem("取消注释");
JTextArea ta = new JTextArea(8,20);
String[] colors = {"Red","Green","Blue"};
JList<String> colorList = new JList<>(colors);
JComboBox<String> colorSelect = new JComboBox<>();
ButtonGroup bg = new ButtonGroup();
JRadioButton male = new JRadioButton("男",false);
JRadioButton female = new JRadioButton("女",true);
JCheckBox isMarried = new JCheckBox("是否已婚?",true);
JTextField tf = new JTextField(40);
JButton ok = new JButton();
JPopupMenu jPopupMenu = new JPopupMenu();
ButtonGroup popupButtonBg = new ButtonGroup();
JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem("Metal 风格");
JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem("Nimbus 风格");
JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem("Windows 风格");
JRadioButtonMenuItem windowsclassItem = new JRadioButtonMenuItem("Windows 经典风格");
JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("Motify 风格");
public void init(){
JPanel bottomPanel = new JPanel();
bottomPanel.add(tf);
bottomPanel.add(ok);
f.add(bottomPanel,BorderLayout.SOUTH);
JPanel selectPanel = new JPanel();
colorSelect.addItem("Red");
colorSelect.addItem("Green");
colorSelect.addItem("Blue");
selectPanel.add(colorSelect);
bg.add(male);
bg.add(female);
selectPanel.add(male);
selectPanel.add(female);
selectPanel.add(isMarried);
Box topLeft = Box.createVerticalBox();
topLeft.add(ta);
topLeft.add(selectPanel);
Box top = Box.createHorizontalBox();
top.add(topLeft,colorList);
f.add(top);
formatMenu.add(comment);
formatMenu.add(cancelComment);
editMenu.add(auto);
editMenu.addSeparator();
editMenu.add(copy);
editMenu.add(paste);
editMenu.addSeparator();
editMenu.add(formatMenu);
menuBar.add(fileMenu);
menuBar.add(editMenu);
f.setJMenuBar(menuBar);
popupButtonBg.add(metalItem);
popupButtonBg.add(nimbusItem);
popupButtonBg.add(windowsItem);
popupButtonBg.add(windowsclassItem);
popupButtonBg.add(motifItem);
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
try {
changeFlavor(actionCommand);
} catch (Exception e1) {
e1.printStackTrace();
}
}
};
metalItem.addActionListener(listener);
nimbusItem.addActionListener(listener);
windowsItem.addActionListener(listener);
windowsclassItem.addActionListener(listener);
motifItem.addActionListener(listener);
jPopupMenu.add(metalItem);
jPopupMenu.add(nimbusItem);
jPopupMenu.add(windowsItem);
jPopupMenu.add(windowsclassItem);
jPopupMenu.add(motifItem);
ta.setComponentPopupMenu(jPopupMenu);
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void changeFlavor(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("javax.swing.plaf.windows.WindowsLookAndFeel");
break;
case "Windows 经典风格":
UIManager.setLookAndFeel("javax.swing.plaf.windows.WindowsClassLookAndFeel");
break;
case "Motif 风格":
UIManager.setLookAndFeel("javax.swing.plaf.motif.MotifLookAndFeel");
break;
}
SwingUtilities.updateComponentTreeUI(f.getContentPane());
SwingUtilities.updateComponentTreeUI(menuBar);
SwingUtilities.updateComponentTreeUI(jPopupMenu);
}
public static void main(String[] args[]){
new OtherFunction().init();
}
}