关于在非常Swing页面上添加Container的问题

时间:2012-09-08 11:50:34

标签: java swing jframe jcomponent

public class POSToolBar extends JFrame {

/**
 * Launch the application.
 */
private BrowserToolBar toolBar;

public POSToolBar() {
    super("POS");
    Container content = getContentPane();
    content.setBackground(Color.white);
    toolBar = new BrowserToolBar();
    content.add(toolBar, BorderLayout.NORTH);
    pack();
    setVisible(true);
}
}

上面的代码为我生成了一个工具栏。现在我想在每个其他摇摆页面上使用此工具栏。我继承/扩展这个类并使用frame.add(new POSToolbar())但是它向我显示了一个异常'java.lang.IllegalArgumentException:向容器添加一个窗口' 如何在其他秋千页面上添加此工具栏?

1 个答案:

答案 0 :(得分:2)

如果你想在其他类中使用它,它必须扩展JToolBar而不是JFrame。

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;

public class TestApplication extends JFrame {
    public static void main(String [] a){
        TestApplication ta = new TestApplication();
        TBar t = new TBar();
        ta.setLayout(new BorderLayout());
        ta.add(t,BorderLayout.NORTH);
        ta.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ta.setPreferredSize(new Dimension(400,300));
        ta.pack();
        ta.setVisible(true);
    }
}

class TBar extends JToolBar{
    JButton b = new JButton("Hello");

    public TBar(){
        add(b);
    }
}