📄 jappletexam.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class jappletExam extends JApplet {
private Color colArr[] = {Color.black, Color.blue, Color.red, Color.green};
private JRadioButtonMenuItem colorItems[], fonts[];
private JCheckBoxMenuItem styleItems[];
private JLabel label1;
private ButtonGroup fontGroup, colorGroup;
private int style;
JPopupMenu popup = new JPopupMenu();//构建弹出菜单
public void init() {
JMenu fileMenu = new JMenu("文件");
fileMenu.setMnemonic('F');
JMenuItem aboutItem = new JMenuItem("About...");
aboutItem.setMnemonic('A');
aboutItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JOptionPane.showMessageDialog(new Frame(),"关于JApplet中使用\n"
+ "菜单和快捷菜单的例子","About", JOptionPane.PLAIN_MESSAGE);
}
}); // end call to addActionListener
fileMenu.add(aboutItem);
JMenuBar bar = new JMenuBar();
setJMenuBar(bar);
bar.add(fileMenu);
String colors[] = {"黑色", "蓝色", "红色", "绿色"}; //显示的菜单项名称
JMenu colorMenu = new JMenu("颜色");
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);
}
colorItems[0].setSelected(true);
String fontNames[] = {"Serif", "Monospaced", "SansSerif"};
JMenu fontMenu = new JMenu("字体");
fontMenu.setMnemonic('n');
fonts = new JRadioButtonMenuItem[fontNames.length];
fontGroup = new ButtonGroup();
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);
}
fonts[0].setSelected(true);
fontMenu.addSeparator();
String styleNames[] = {"粗体", "斜体"};
styleItems = new JCheckBoxMenuItem[styleNames.length];
StyleHandler styleHandler = new StyleHandler();
for (int count = 0; count < styleNames.length; count++) {
styleItems[count] = new JCheckBoxMenuItem(styleNames[count]);
fontMenu.add(styleItems[count]);
styleItems[count].addItemListener(styleHandler);
}
popup.add(colorMenu);
popup.add(fontMenu);
addMouseListener(new MousePopupListener());
label1= new JLabel("注意字体和颜色变化", SwingConstants.CENTER);
label1.setForeground(colArr[0]);
label1.setFont(new Font("TimesRoman", Font.PLAIN, 40));
getContentPane().add(label1, BorderLayout.CENTER);
setSize(500, 200);
setVisible(true);
} // end constructor
//使用内部类来监听鼠标事件
class MousePopupListener extends MouseAdapter {
public void mousePressed(MouseEvent e) {
checkPopup(e);
}
public void mouseClicked(MouseEvent e) {
checkPopup(e);
}
public void mouseReleased(MouseEvent e) {
checkPopup(e);
}
private void checkPopup(MouseEvent e) {
if (e.isPopupTrigger()) { //右键显示快捷菜单
popup.show(jappletExam.this, e.getX(), e.getY());
}
}
}
private class ItemHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
for (int i= 0; i< colorItems.length; i++)
if (colorItems[i].isSelected()) {
label1.setForeground(colArr[i]);
break;
}
for (int i= 0; i< fonts.length; i++)
if (event.getSource() == fonts[i]) {
label1.setFont(new Font(fonts[i].getText(), style, 40));
break;
}
repaint();
}
}
private class StyleHandler implements ItemListener {
public void itemStateChanged(ItemEvent e) {
style = 0;
if (styleItems[0].isSelected())
style += Font.BOLD;
if (styleItems[1].isSelected())
style += Font.ITALIC;
label1.setFont(new Font(label1.getFont().getName(), style, 40));
repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -