『壹』 java文本框,點擊右鍵,產生右鍵事件,出現彈出式菜單,三個菜單選項(復制,粘貼,剪切)
在java.awt包中有兩個類可以用於彈出式菜單,PopupMenu(彈出式菜單),MenuItem(菜單項),
在 java.awt.event 包的MouseListener與MouseEvent 可用於滑鼠事件
下面是代碼(是從別的地方借用過來的,刪除了一些與此問題無關的內容):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class PopupMenuDemo extends JFrame implements ActionListener
{
JButton btnTest=new JButton("Test");
JTextArea textArea=new JTextArea();
PopupMenu pMenu=new PopupMenu(); //創建彈出式菜單,下面三項是菜單項
MenuItem mItemCopy=new MenuItem("復制");
MenuItem mItemPaste=new MenuItem("粘貼");
MenuItem mItemCut=new MenuItem("剪切");
MouseAdapter mouseAdapter=new MouseAdapter()//監聽滑鼠事件
{
public void mouseClicked(MouseEvent event)
{
if(event.getButton()==MouseEvent.BUTTON3)//只響應滑鼠右鍵單擊事件
{
pMenu.show(textArea,event.getX(),event.getY());//在滑鼠位置顯示彈出式菜單
}
}
};
ActionListener menuAction=new ActionListener()//響應單擊菜單項的事件,只是示例,
{//具體內容可自己編寫
public void actionPerformed(ActionEvent e)
{
MenuItem item=(MenuItem)e.getSource();
if(item==mItemCopy) //單擊了「復制」菜單項
{
JOptionPane.showMessageDialog(null,"復制");
}
else if(item==mItemPaste) //「粘貼」菜單項
{
JOptionPane.showMessageDialog(null,"粘貼");
}
else
{
JOptionPane.showMessageDialog(null,"剪切"); //「剪切」菜單項
}
}
};
public PopupMenuDemo()
{
setTitle("Test");
setSize(300,300);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(btnTest,BorderLayout.NORTH);
add(textArea,BorderLayout.CENTER);
textArea.add(pMenu); //彈出式菜單加入到文本框中,否則不能顯示
textArea.addMouseListener(mouseAdapter); //文本框加入滑鼠監聽器
pMenu.add(mItemCopy); //菜單項的單擊事件監聽器
mItemCopy.addActionListener(menuAction);
pMenu.add(mItemPaste);
mItemPaste.addActionListener(menuAction);
pMenu.add(mItemCut);
mItemCut.addActionListener(menuAction);
btnTest.addActionListener(this);
}
public static void main(String... args)
{
new PopupMenuDemo().setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"測試功能");
}
}
『貳』 如何給Java窗體添加菜單欄