📄 menutest.java
字号:
//Menu
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class MenuTest extends JFrame
{
private Color colorValues[]={Color.black,Color.blue,Color.red,Color.green};
private JRadioButtonMenuItem colorItems[] ,fonts[];
private JCheckBoxMenuItem styleItems[];
private JLabel displayLabel;
private ButtonGroup fontGroup,colorGroup;
private int style;
public MenuTest()
{
super("Using JMenu");
JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic('F');
JMenuItem aboutItem = new JMenuItem("About...");
aboutItem.setMnemonic('A');
aboutItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(MenuTest.this,"This is an example\nof using menus","About",JOptionPane.PLAIN_MESSAGE);
}
});
fileMenu.add(aboutItem);
JMenuItem exitItem = new JMenuItem("Exit");
exitItem.setMnemonic('x');
exitItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
fileMenu.add(exitItem);
//create menu bar and attach it to MenuTest window
JMenuBar bar = new JMenuBar();
setJMenuBar(bar);
bar.add(fileMenu);
//creat Format menu,its submenus and menu items
JMenu formatMenu = new JMenu("Format");
formatMenu.setMnemonic('r');
String colors[] = {"Black","Blue","Red","Green"};
JMenu colorMenu = new JMenu("Color");
colorMenu.setMnemonic('C');
colorItems = new JRadioButtonMenuItem[colors.length];
colorGroup = new ButtonGroup();
ItemHandler itemHandler = new ItemHandler();
for(int count = 0;count<colors.length;count++)
{
colorItems[count] = new JRadioButtonMenuItem(colors[count]);
colorMenu.add(colorItems[count]);
colorGroup.add(colorItems[count]);
colorItems[count].addActionListener(itemHandler);
}
//select first color menu item
colorItems[0].setSelected(true);
//add format menu to menu bar
formatMenu.add(colorMenu);
//add seperator line
formatMenu.addSeparator();
//creat Font submenu
String fontNames[] = {"Serif","Monospaced","SansSerif"};
JMenu fontMenu = new JMenu("Font");
fontMenu.setMnemonic('n');
fonts = new JRadioButtonMenuItem[fontNames.length];
fontGroup = new ButtonGroup();
//creat Font radio button menu items
for(int count = 0;count<fonts.length;count++)
{
fonts[count] = new JRadioButtonMenuItem(fontNames[count]);
fontMenu.add(fonts[count]);
fontGroup.add(fonts[count]);
fonts[count].addActionListener(itemHandler);
}
//select first font menu item
fonts[0].setSelected(true);
fontMenu.addSeparator();
//set up style menu items
String styleNames[] = {"Bold","Italic"};
styleItems = new JCheckBoxMenuItem[styleNames.length];
StyleHandler styleHandler = new StyleHandler();
//creat style checkbox menu items
for(int count = 0;count < styleNames.length;count++)
{
styleItems[count] = new JCheckBoxMenuItem(styleNames[count]);
fontMenu.add(styleItems[count]);
styleItems[count].addItemListener(styleHandler);
}
//put Font menu int Format menu
formatMenu.add(fontMenu);
//add Format menu to menu bar
bar.add(formatMenu);
displayLabel = new JLabel("Simple Text",SwingConstants.CENTER);
displayLabel.setForeground(colorValues[0]);
displayLabel.setFont(new Font("TimesRoman",Font.PLAIN,72));
getContentPane().setBackground(Color.cyan);
getContentPane().add(displayLabel,BorderLayout.CENTER);
setSize(600,600);
setVisible(true);
}
public static void main(String[]args)
{
MenuTest mt = new MenuTest();
mt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private class ItemHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//process color selection
for(int count = 0;count<colorItems.length;count++)
{
if(colorItems[count].isSelected())
{
displayLabel.setForeground(colorValues[count]);
break;
}
}
//process font selection
for(int count = 0;count<colorItems.length;count++)
{
if(e.getSource() == fonts[count])
{
displayLabel.setFont(new Font(fonts[count].getText(),style,72));
break;
}
}
repaint();
}
}
private class StyleHandler implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
style = 0;
//check for bold selection
if(styleItems[0].isSelected())
style += Font.BOLD;
//check for italic selection
if(styleItems[1].isSelected())
style += Font.ITALIC;
displayLabel.setFont(new Font(displayLabel.getFont().getName(),style,72));
repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -