62,621
社区成员
发帖
与我相关
我的任务
分享
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class XiTi7_4 {
public static void main(String args[]){
MenuWindow win=new MenuWindow("菜单示例");
}
}
class MenuWindow extends JFrame implements ActionListener,MouseMotionListener,MouseListener{
static String s1,s2,s3;
static int x1,x2,x3,x4;
static int flag;
Graphics g;
Graphics2D g2d=(Graphics2D)g;
JMenuBar menubar;
JMenu menu1,menu2,menu3;
JMenuItem item1,item2,item3;
private void addItem(JMenu menu,JMenuItem anItem,String menuName,int key,ActionListener listener)
{
anItem=new JMenuItem(menuName,key);
anItem.setActionCommand(menuName);
anItem.addActionListener(listener);
menu.add(anItem);
}
public MenuWindow(String s){
super(s);
this.setSize(300,300);
menubar=new JMenuBar();
menu1=new JMenu("选择颜色");
menu2=new JMenu("画笔粗细");
menu3=new JMenu("选择橡皮檫");
addItem(menu1,item1,"选择颜色",KeyEvent.VK_B,this);
addItem(menu2,item2,"画笔粗细",KeyEvent.VK_S,this);
addItem(menu3,item3,"选择橡皮檫",KeyEvent.VK_C,this);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
this.getContentPane().add(new ShapesPanel());
addMouseMotionListener(this);
addMouseListener(this);
setJMenuBar(menubar);
this.setVisible(true);
}
public void mousePressed(MouseEvent e){
x1=e.getX();
x2=e.getY();
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){
}
public void actionPerformed(ActionEvent e)
{if(e.getSource()==item1)
{
MyDialog m1=new MyDialog(this,"颜色");
Color mycolor=new Color(x1,x2,x3);
g2d.setColor(mycolor);
}
if(e.getSource()==item2)
{
MyDialog.text1.setEditable(true);
MyDialog.text2.setEditable(false);
MyDialog.text3.setEditable(false);
MyDialog m2=new MyDialog(this,"宽度");
s1=MyDialog.text1.getText();
x1=Integer.parseInt(s1);
BasicStroke ss=new BasicStroke(x1);
}
if(e.getSource()==item3)
{
flag=3;
}
}
public void mouseDragged(MouseEvent e)
{
if(flag==3)
{x3=e.getX();
x4=e.getY();
g.clearRect(x1,x2,x3,x4);
}
}
public void mouseMoved(MouseEvent e){}
}
class ShapesPanel extends JPanel{
ShapesPanel(){
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(20,20,80,40);
}
}
class MyDialog extends JDialog implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
JLabel title;
static JTextField text1,text2,text3;
JButton done;
MyDialog(JFrame F,String s){
super(F,s,true);
Container con=this.getContentPane();
title=new JLabel("输入"+s+"名称");
text1 =new JTextField(10);
text1.setEditable(true);
text2 =new JTextField(10);
text2.setEditable(true);
text3 =new JTextField(10);
text3.setEditable(true);
con.setLayout(new FlowLayout());
this.setSize(200,100);
setModal(false);
done=new JButton("确定");
done.addActionListener(this);
con.add(title);
con.add(text1);
con.add(text2);
con.add(text3);
con.add(done);
con.setVisible(true);
this.pack();
}
public void actionPerformed(ActionEvent e){
MenuWindow.s1=text1.getText();
MenuWindow.s2=text2.getText();
MenuWindow.s3=text3.getText();
MenuWindow.x1=Integer.parseInt(MenuWindow.s1);
MenuWindow.x2=Integer.parseInt(MenuWindow.s2);
MenuWindow.x3=Integer.parseInt(MenuWindow.s3);
if(MenuWindow.x1>=255)MenuWindow.x1=255;
if(MenuWindow.x2>=255)MenuWindow.x1=255;
if(MenuWindow.x3>=255)MenuWindow.x1=255;
}
}
//addMouseMotionListener(this);
//addMouseListener(this);
监听器加在菜单项上
menu1.addMouseListener(this);
menu2.addMouseListener(this);
menu3.addMouseListener(this);
//if(e.getSource()==item1 )
if(e.getSource()==item1 )
if(e.getActionCommand() .equalsIgnoreCase("选择颜色"))