setLayout(LayoutManager)不适用于参数

时间:2013-09-13 13:39:38

标签: java swing

我正在尝试编译这个非常简单的BoxLayout管理器测试,并且我不断收到此错误:“Container类型中的方法setLayout(LayoutManager)不适用于我的线路面板上的参数(Layouttest)”。 setLayout(new Layouttest(panel,Layouttest.Y_AXIS));.  抱歉,如果这是一个非常简单的问题,我仍然试图解决这个问题。

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);
    }
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

替换

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

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

并导入BoxLayout,以便您的应用程序可以使用非限定类名

import javax.swing.BoxLayout;

答案 1 :(得分:3)

LayoutManager不是JFrame。您的班级Layouttest正在延长JFrame,您正试图将其传递给setLayout()

如果您要创建自己的LayoutManager,可以使用tutorial