我正在尝试编译这个非常简单的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);
}
}
感谢您的帮助。
答案 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。