почему моя кнопка не отображается на моем JPanel - Java - PullRequest
1 голос
/ 07 декабря 2010

Или, может быть, моя JPanel вообще не появляется.

Я пытаюсь разместить в нижней части экрана JPanel с несколькими кнопками. Может кто-нибудь выставить меня проливом?

public class MyAWTMenu extends java.awt.Frame// implements ActionListener 
{
public void init() { 
setBackground( Color.white );
JPanel bottom = new JPanel();
    bottom.setBackground(Color.BLACK);
    JButton b1 = new JButton("test");
 b1.setVisible(true);
    bottom.add(b1);
    bottom.setVisible(true);
    add(bottom,BorderLayout.CENTER);
}
public static void main( String args [] ) {

    MyAWTMenu objAppFrame = new MyAWTMenu();

    objAppFrame.addWindowListener(      //Register an anonymous class as a listener.
         new WindowAdapter() {
            public void windowClosing( WindowEvent e ) 
            {  
               System.exit( 0 );
            }
         }
    );
    objAppFrame.init();
    objAppFrame.setSize( 760, 378);
    objAppFrame.setVisible( true );                    

  }

Ответы [ 2 ]

3 голосов
/ 07 декабря 2010

Я бы лучше переписал это следующим образом:

public class FooFrame extends JFrame {

    public FooFrame() {

        // your code, copy/pasted
        setBackground(Color.white);
        JPanel bottom = new JPanel();
        bottom.setBackground(Color.BLACK);
        JButton b1 = new JButton("test");
        bottom.add(b1);
        add(bottom, BorderLayout.CENTER);

        // set size & pack
        Dimension size = new Dimension(400, 400);
        setPreferredSize(size);
        setMinimumSize(size);
        pack();
        setLocationRelativeTo(null);
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FooFrame().setVisible(true);
            }
        });
    }
}
1 голос
/ 07 декабря 2010

add(bottom,BorderLayout.SOUTH); в вашем init()

Вот ваш код, который я запускал. Кажется, для меня это нормально работает. Я добавил вызов на pack();


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JPanel;

public class MyAWTMenu extends java.awt.Frame// implements ActionListener
{

    public void init() {
        setBackground(Color.white);
        JPanel bottom = new JPanel();
        bottom.setBackground(Color.BLACK);
        JButton b1 = new JButton("test");
        bottom.add(b1);
        bottom.setVisible(true);
        add(bottom, BorderLayout.SOUTH);
        pack();
    }

    public static void main(String args[]) {

        MyAWTMenu objAppFrame = new MyAWTMenu();

        objAppFrame.addWindowListener( //Register an anonymous class as a listener.
                new WindowAdapter() {

            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        objAppFrame.init();
        objAppFrame.setSize(760, 378);
        objAppFrame.setVisible(true);

    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...