1

我正在尝试编译 BoxLayout 管理器的这个非常简单的测试,但我不断收到此错误:“容器类型中的方法 setLayout(LayoutManager) 不适用于参数 (Layouttest)”在我的行 panel.setLayout(new布局测试(面板,布局测试.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);
    }
}

感谢您的任何帮助。

4

2 回答 2

4

代替

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

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

并导入BoxLayout,以便您的应用程序可以使用不合格的类名

import javax.swing.BoxLayout;
于 2013-09-13T13:42:11.613 回答
3

ALayoutManager不是JFrame. 您的课程 ,Layouttest正在扩展JFrame,您正试图将其传递给setLayout().

如果您尝试创建自己的LayoutManager,可以使用教程

于 2013-09-13T13:42:50.257 回答