【问题标题】:Setting the size of a button and action listener设置按钮和动作监听器的大小
【发布时间】:2012-01-16 01:01:41
【问题描述】:

问题一:

我正在尝试设置按钮的大小,但似乎没有改变,而是总是填满整个屏幕,这不是我想要的。

问题 2:

当我在消息中添加 public void actionPerformed1(ActionEvent e) 时,它似乎没有出现。也许是因为按钮填满了整个空间,但我真的不知道。

这是按钮的代码:

import java.awt.event.*;

import javax.swing.*;
import java.awt.*;
   public class HockeyGame extends JFrame implements 
      ActionListener, KeyListener, Runnable, WindowListener  //, ActionListener
        {
        Thread t;
        int xpuck, ypuck,xspeed,yspeed,gx,gy,redx2,redy2,lg,rg, redscore, bluescore,
            redx,redy, gx2, gy2, bluex, bluey,bluex2,bluey2,rg2,lg2;
        //int SQUARE_SIZE=10;
        public HockeyGame ( ) {

            }

        public static void main ( String [ ] commandLine ) {
            HockeyGame hg=new HockeyGame();
            hg.init();
        }

        public void actionPerformed1(ActionEvent e) {
            JOptionPane.showMessageDialog(null,"testing");
        }
        public void init() {
            Button b;           
            b = new Button("Click me");
            b.addActionListener(this); 
            b.setSize(40, 40);
            add(b);
            t=new Thread(this);
            this.addKeyListener(this);
            this.setFocusable(true);
            setSize(700,700);
            setVisible ( true );

任何帮助表示赞赏asd

【问题讨论】:

  • 1) 为了尽快获得更好的帮助,请发帖 SSCCE。 2) 请使用常见的 Java 命名法 (即ypuck -> yPuck) 3) 不要设置按钮的大小。 而是使用布局、填充和布局间距将按钮放置在需要它的大小。 4) 使用键绑定而不是KeyListener。 5) 在 EDT 上创建和更改 GUI。 6) JOptionPane.showMessageDialog(null,"testing"); 应该是JOptionPane.showMessageDialog(this,"testing"); 7) JFrame 内容窗格的默认布局是BorderLayout,在CENTER 中添加一个没有约束的组件
  • 我同意 Andrew 发布的所有内容并将补充:阅读layout manager tutorials,因为您的问题是由于对它们的工作原理缺乏了解。
  • 另外,如果您有两个不同的问题,请将它们作为单独的问题发布

标签: java swing button size setting


【解决方案1】:

从简单的练习开始,让你在基础上变得更强大。

1) 您的 Button 会填满空间,因为您的内容窗格的默认布局是边框布局。将布局设置为 Flow Layout 或任何其他布局。

2) 函数名应与Action Listener中定义的完全相同。


public void actionPerformed(ActionEvent e)
{}

在你掌握了基础知识之前,我所说的都是没有意义的。

【讨论】:

    猜你喜欢
    • 2013-12-24
    • 1970-01-01
    • 2020-12-21
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2012-02-04
    • 2013-03-01
    相关资源
    最近更新 更多