2012-01-16 37 views
0

问题1:设置一个按钮的动作侦听器的大小

我想我的设置按钮的大小,但似乎并没有改变,而总是充满整个屏幕,这是不是有什么我想要。

问题2:

当我添加了公共无效actionPerformed1(ActionEvent的五)与我的消息,这似乎并没有显示出来。也许是因为按钮填满了整个空间,但我真的不知道。

下面是按钮的代码:

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

任何帮助appreciatedasd

+4

1)为了更好地提供帮助,请发布[SSCCE](http://sscce.org/)。 2)请使用普通的Java命名法(例如'ypuck' - >'yPuck')3)**不要设置按钮的大小**而是使用布局,填充和布局间距将按钮放在需要的位置在所需的大小。 4)使用密钥绑定而不是'KeyListener'。 5)在EDT上创建和更改GUI。 6)'JOptionPane.showMessageDialog(null,“testing”);'应该是'JOptionPane.showMessageDialog(this,“testing”);'7)'JFrame'内容窗格的默认布局是'BorderLayout',一个组件没有约束被添加到'CENTER' – 2012-01-16 01:07:26

+2

我同意安德鲁发布的所有内容,并将添加:阅读[布局管理器教程](http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html)因为你的问题是由于对他们的工作缺乏了解所致。 – 2012-01-16 01:14:02

+0

另外,如果您有两个不同的问题,请将它们作为单独的问题发布 – SJuan76 2012-01-16 01:24:55

回答

2

先从简单的练习,使你的基础知识强。

1)由于内容窗格的默认布局是“边界布局”,因此您的按钮填满了空间。将布局设置为流布局或其他。

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


public void actionPerformed(ActionEvent e) 
{} 

无论我说什么都会有意义的,直到你有了基础知识。

相关问题