因此,我首先将我的两个类的代码放在这里。
SquareSimp.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SquareSimp
{
public static void main( String[] args )
{
FilledFrame frame = new FilledFrame();
frame.setVisible( true );
}
}
class FilledFrame extends JFrame
{
int size = 400;
public FilledFrame()
{
JButton butSmall = new JButton("Small");
JButton butMedium = new JButton("Medium");
JButton butLarge = new JButton("Large");
JButton butMessage = new JButton("Say Hi!");
SquarePanel panel = new SquarePanel(this);
JPanel butPanel = new JPanel();
butSmall.addActionListener(new ButtonHandler1(this, 200){
@Override
public void actionPerformed(ActionEvent actionEvent) {
size = 200;
panel.repaint();
}
});
butMedium.addActionListener(new ButtonHandler1(this, this.size){
@Override
public void actionPerformed(ActionEvent actionEvent) {
size = 300;
panel.repaint();
}
});
butLarge.addActionListener(new ButtonHandler1(this, this.size){
@Override
public void actionPerformed(ActionEvent actionEvent) {
size = 400;
panel.repaint();
}
});
butPanel.add(butSmall);
butPanel.add(butMedium);
butPanel.add(butLarge);
butPanel.add(butMessage);
add(butPanel, BorderLayout.NORTH);
add(panel, BorderLayout.CENTER);
setSize( size+100, size+100 );
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
到目前为止,一切正常,这很棒。然而,根据要求,我被要求为每个类制作一个按钮处理程序。有人可以向我解释一下我的 ButtonHandler 在这里实际上在做什么吗?因为我觉得我可以用更好的方法来完成它(在按钮处理程序类中创建事件并根据按下的按钮影响其大小),而不是创建匿名函数并覆盖 actionPerformed 事件。我不知道该怎么做,所以任何解释的帮助都会很棒!
烙印99
慕后森
慕森卡
相关分类