Программа BoxLayout не работает - PullRequest
1 голос
/ 28 августа 2010
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class File
{
 private JFrame frame1;
 private JPanel panel1;
 private JPanel panel2;
 private JLabel labelWeight;
 private JLabel labelHeight;




    File()
    {
     frame1 = new JFrame();
     panel1 = new JPanel();
     panel2 = new JPanel();
     labelWeight = new JLabel("Weight :");
     labelHeight = new JLabel("Height :");


    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     panel1.setLayout(new FlowLayout());
     panel1.add(labelWeight);

     panel2.setLayout(new FlowLayout());
     panel2.add(labelHeight);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     frame1.setLayout(new BoxLayout(frame1,BoxLayout.X_AXIS));
     panel1.setAlignmentY(0);
     panel2.setAlignmentY(0);

     frame1.add(panel1);
     frame1.add(panel2);


     frame1.setSize(400, 200);
     frame1.setDefaultCloseOperation(frame1.EXIT_ON_CLOSE);
     frame1.setVisible(true);
    }


    public static void main (String args[])
    {
     new File();
    }

}   

Выдает ошибку совместного использования BoxLayout во время выполнения

Ответы [ 2 ]

2 голосов
/ 28 августа 2010

Обычно LayoutManager устанавливаются на JPanel. Я предполагаю, что JFrame реализует этот метод, чтобы переслать его на панель содержимого фрейма. Я бы посоветовал вам попробовать:

Container contentPane = frame1.getContentPane();
contentPane.setLayout(new BoxLayout(contentPane,BoxLayout.X_AXIS)); 

Если у вас все еще есть проблемы, посмотрите учебник Swing на Как использовать Box Layout для рабочих примеров.

1 голос
/ 28 августа 2010

Компоненты Swing должны быть созданы в потоке диспетчеризации событий.Попробуйте это в вашем main ():

javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        new File();
    }
});

Но ваша проблема может быть такой же, как этот вопрос .

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