2013-09-13 3 views
1

Я пытаюсь скомпилировать этот довольно простой тест менеджера BoxLayout, и я продолжаю получать эту ошибку: «Метод setLayout (LayoutManager) в типе Container не применим для аргументов (Layouttest) "на моей панели panel.setLayout (новый Layouttest (панель, Layouttest.Y_AXIS)). Извините, если это действительно простой вопрос, я все еще пытаюсь понять это.setLayout (LayoutManager) неприменим для аргументов

import java.awt.BorderLayout; 
import java.awt.Color; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
public class Layouttest extends JFrame { 

public static void main(String[] args) { 
    SimpleGui1B gui = new SimpleGui1B(); 
    gui.go(); 

} 

public void go(){ 


    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 

    panel.setBackground(Color.darkGray); 
    panel.setLayout(new Layouttest(panel, Layouttest.Y_AXIS)); 

    JButton button = new JButton ("Button A"); 
    JButton buttonTwo = new JButton ("Button B"); 

    panel.add(button); 
    panel.add(buttonTwo); 

    frame.getContentPane().add(BorderLayout.EAST, panel); 
    frame.setSize(250,200); 
    frame.setVisible(true); 
    } 
} 

Благодарим за помощь.

ответ

4

Заменить

panel.setLayout(new Layouttest(panel, Layouttest.Y_AXIS)); 

с

panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); 

и импортировать BoxLayout так, что имя неквалифицированного класса доступно для вашего приложения

import javax.swing.BoxLayout; 
+2

Начните с учебника Swing в [Как использовать компоновку ящиков] (http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html) для рабочих примеров. – camickr

+0

Отлично работает, спасибо за помощь. – Icy100

+0

Отлично, приветствую вас! :) – Reimeus

3

LayoutManager не JFrame. Ваш класс, Layouttest, распространяется JFrame, и вы пытаетесь передать его setLayout().

Если вы пытаетесь создать свой собственный LayoutManager, для этого есть tutorial.

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