㈠ 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編程將兩張圖片復制在同一畫板上
方法一: 可以使用JLabel 來顯示圖片, 然後存放到同一JPanel中
方法二: 可以重寫JPanel 的paint方法 來繪制圖片
推薦使用方法一: 簡便
效果圖
importjava.awt.BorderLayout;
importjava.awt.EventQueue;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.JLabel;
{
privateJPanelcontentPane;
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
FrameIMGframe=newFrameIMG();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
publicFrameIMG(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,450,300);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
contentPane.setLayout(newBorderLayout(0,0));
setContentPane(contentPane);
JPanelpanel=newJPanel();
contentPane.add(panel,BorderLayout.CENTER);
JLabeljl1=newJLabel(newImageIcon("1.jpg"));//圖片1
panel.add(jl1);
JLabeljl2=newJLabel(newImageIcon("2.jpg"));//圖片2
panel.add(jl2);
}
}
㈢ java中的swing什麼意思
Swing是一個來用於開發Java應用程序用自戶界面的開發工具包。以抽象窗口工具包(AWT)為基礎使跨平台應用程序可以使用任何可插拔的外觀風格。
Swing開發人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創建優雅的用戶界面。 工具包中所有的包都是以swing作為名稱.