2012-01-16 2 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) Создавайте и изменяйте GUI на EDT. 6) 'JOptionPane.showMessageDialog (null," testing ");' должен быть 'JOptionPane.showMessageDialog (это,« тестирование »);' 7). Разметка по умолчанию панели содержимого JFrame - это «BorderLayout», компонент с никакое ограничение не добавляется в 'CENTER' –

+2

Я согласен со всем, что написал Андрей и добавит: прочитайте учебники по макету менеджера (http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) потому что ваши проблемы связаны с отсутствием понимания того, как они работают. –

+0

Кроме того, если у вас есть две разные проблемы, разместите их как отдельные вопросы – SJuan76

ответ

2

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

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

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


public void actionPerformed(ActionEvent e) 
{} 

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

Смежные вопросы