java:设置了buttonPanel按钮后,怎么在事件监听器中加入要显示的图案

学习java中,,作业要求按不同的按钮显示不同的图案,但我加入按钮后,不知道在怎么实现图案,actionPerformed方法中直接用Frame中定义buttonpanel对象吗

package showFace;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;

import java.applet.*;

class drawsmile extends JPanel{   //画笑脸
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		Graphics2D g2=(Graphics2D)g;
		int centerx=0;
		int centery=0;
		int minx=-200;
		int miny=-200;
		int maxx=200;
		int maxy=200;
		g2.translate(800,5);  
		g2.draw(new Line2D.Double(minx,centery,maxx,centery));  
	}
}
class drawcry extends JPanel{    //流泪脸
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		Graphics2D g2=(Graphics2D)g;
		int centerx=0;
		int centery=0;
		int minx=-200;
		int miny=-200;
		int maxx=200;
		int maxy=200;
		g2.translate(800,5);  
		g2.draw(new Line2D.Double(centerx, miny, centerx, maxy));
	}
}

class  DrawFrame extends JFrame{
	JPanel buttonPanel;
	public DrawFrame(){
		setTitle("显示表情");    //窗口标题
		setSize(500,500);       //窗口大小
		//创建按钮
		JButton smileButton=new JButton("微笑");    //创建按钮“微笑”
		JButton cryButton=new JButton("流泪");
		//创建绘制面板buttonPanel
		JPanel buttonPanel=new JPanel();
		//图形绘制中加入按钮
		buttonPanel.add(smileButton); 
		buttonPanel.add(cryButton);
		//按钮加入面板
		add(buttonPanel);
		//创建按钮事件
		FaceAction smileAction=new FaceAction("smile");
		//将事件与按钮连接起来
		smileButton.addActionListener(smileAction);
		
		}
	//内部类 
class FaceAction extends JPanel implements ActionListener{   //编写函数对应不同的类
		private String a;   
		Panel panel=new Panel();
		public FaceAction (String a){ //构造函数
			   if(a=="smile") {
				drawsmile panel=new drawsmile();   
			   }
		 	   if(a=="cry") {}
			    drawcry panel =new drawcry();
		       }
		   public void actionPerformed(ActionEvent event) {
			   buttonPanel.add(panel);
		   }
		  
	}
}
public class showface {//主函数showface为测试函数

	public static void main(String[] args) {
		// TODO Auto-generated method stub
         DrawFrame a=new DrawFrame();      //框架定义
         a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         a.setVisible(true);
	}
}



慕瓜6658770
浏览 2491回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java