📄 frame1.java
字号:
package popupmenutest;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
public class Frame1
extends JFrame {
JPanel contentPane;
Label label1 = new Label();
PopupMenu popupMenu1 = new PopupMenu();
MenuItem menuItem1 = new MenuItem();
MenuItem menuItem2 = new MenuItem();
MenuItem menuItem3 = new MenuItem();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(300, 150));
setTitle("弹出菜单");
label1.setAlignment(Label.CENTER);
label1.setBackground(Color.yellow);
label1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 24));
label1.setText("我喜欢Java");
label1.setBounds(new Rectangle(31, 24, 242, 22));
label1.addMouseListener(new Frame1_label1_mouseAdapter(this));
menuItem1.setLabel("左对齐");
menuItem1.addActionListener(new Frame1_menuItem1_actionAdapter(this));
menuItem2.setLabel("居中");
menuItem2.addActionListener(new Frame1_menuItem2_actionAdapter(this));
menuItem3.setLabel("右对齐");
menuItem3.addActionListener(new Frame1_menuItem3_actionAdapter(this));
contentPane.add(label1);
popupMenu1.add(menuItem1);
popupMenu1.add(menuItem2);
popupMenu1.add(menuItem3);
this.add(popupMenu1); //添加弹出菜单
//或: contentPane.add(popupMenu1);
}
public void menuItem1_actionPerformed(ActionEvent e) {
label1.setAlignment(label1.LEFT); //左对齐
}
public void menuItem2_actionPerformed(ActionEvent e) {
label1.setAlignment(label1.CENTER); //居中
}
public void menuItem3_actionPerformed(ActionEvent e) {
label1.setAlignment(label1.RIGHT); //右对齐
}
public void label1_mouseClicked(MouseEvent e) {
popupMenu1.show(label1,e.getX(),e.getY()); //在鼠标当前位置显示弹出菜单
}
}
class Frame1_label1_mouseAdapter
extends MouseAdapter {
private Frame1 adaptee;
Frame1_label1_mouseAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.label1_mouseClicked(e);
}
}
class Frame1_menuItem1_actionAdapter
implements ActionListener {
private Frame1 adaptee;
Frame1_menuItem1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.menuItem1_actionPerformed(e);
}
}
class Frame1_menuItem2_actionAdapter
implements ActionListener {
private Frame1 adaptee;
Frame1_menuItem2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.menuItem2_actionPerformed(e);
}
}
class Frame1_menuItem3_actionAdapter
implements ActionListener {
private Frame1 adaptee;
Frame1_menuItem3_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.menuItem3_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -