Установка размера кнопки и слушателя действия - PullRequest
0 голосов
/ 16 января 2012

Задача 1:

Я пытаюсь установить размер моей кнопки, но, похоже, она не меняется, а вместо этого всегда заполняет весь экран, а это не то, что мне нужно.

Задача 2:

Когда я добавляю публичное 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 );

Любая помощь приветствуется как

1 Ответ

2 голосов
/ 16 января 2012

Начните с простых упражнений, которые сделают вас сильными в основах.

1) Ваша кнопка заполняет пространство, потому что макетом по умолчанию для вашей панели контента является Border Layout. Установите макет на Flow Layout или любой другой.

2) Имя функции должно быть точно таким же, как определено в Action Listener.


public void actionPerformed(ActionEvent e)
{}

Ничто из того, что я сказал, не будет иметь смысла, пока вы не разберетесь с основами.

...