java 按钮 改变面板_触发按钮改变panel面板上的小圆圈颜色

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

import javax.swing.*;import java.awt.event.*;import java.awt.*;public class TouChaCol implementsActionListener{

JFrame frame;public static voidmain(String [] args){

TouChaCol game= newTouChaCol();

game.go();

}public voidgo(){

frame= newJFrame();

JButton button= new JButton("Can you touch me?");

button.addActionListener(this);

Panel aPanel= newPanel();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(BorderLayout.SOUTH,button);

frame.getContentPane().add(BorderLayout.CENTER,aPanel);

frame.setSize(300, 300);

frame.setVisible(true);

}public voidactionPerformed(ActionEvent event){

frame.repaint();

}

}

View class TouChaCol

查询java api文档:

ActionEvent 类 来自java.awt.event

JFrame,JButton 类来自javax.swing

接口 ActioListener来自java.awt.event

BorderLayout 类 来自java.awt 用法:BorderLayout.SOUTH/CENTER...详见文档

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

import javax.swing.*;import java.awt.*;public class Panel extendsJPanel{public voidpaintComponent(Graphics g){int red = (int)(Math.random() * 255);int green = (int)(Math.random() * 255);int blue = (int)(Math.random() * 255);

Color myColor= newColor(red,green,blue);

g.setColor(myColor);

g.fillOval(70,70, 100, 100);

}

}

View class Panel

让Panel继承JPanel,覆盖它的paintComponent(Graphics g)方法则可以按照自己的意思画图

整体思想:

建一个类TouChaCol

分别建1个 JFrame ,Panel(继承过JPanel)和 button的对象

再将后两者的对象放到JFrame对象上,将button的监听者设为TouChaCol的对象(该对象即为ActionListener)

所以要在该对象的类中实现接口ActionListener中的actionPerformed(ActionEvent e)方法作为事件处理方法(e即为button被按了一下)

特意将frame设为实例变量,不用是不行的,原因是actionPerformed必须得存取frame对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现在Java中按回车触发按钮,可以使用KeyListener来监听回车键的事件,也可以在文本框中使用ActionListener来监听回车键的事件。以下是一个使用ActionListener的示例代码: ```java import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class EnterButtonExample extends JFrame { private JTextField textField; private JButton button; public EnterButtonExample() { super("Enter Button Example"); JPanel panel = new JPanel(); textField = new JTextField(20); textField.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { button.doClick(); } }); button = new JButton("Submit"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Button clicked"); } }); panel.add(textField); panel.add(button); add(panel); setSize(300, 100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new EnterButtonExample(); } } ``` 在上面的代码中,我们创建了一个JTextField和一个JButton,并将它们添加到一个JPanel中。然后,我们使用textField的addActionListener方法来添加一个ActionListener,当用户按下回车键时,会自动触发ActionEvent事件,我们在事件处理程序中调用button的doClick方法来模拟用户点击按钮的操作。这样,当用户按下回车键时,就会自动触发按钮的Action事件,从而执行我们在事件处理程序中编写的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值