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

这篇博客介绍了如何在Java程序中,通过为按钮添加监听器来实现点击按钮后显示不同的图案。具体做法是在事件监听器中根据按钮的类型创建对应的绘制面板,如画笑脸或流泪脸,并在按钮被点击时将面板添加到按钮面板上。
摘要由CSDN通过智能技术生成

学习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);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值