java - 关于在 Swing 页面上添加容器的问题

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

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

最佳答案

如果您想在其他类中使用它,它必须扩展 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);
    }
}

关于java - 关于在 Swing 页面上添加容器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12330489/

相关文章:

java - Kotlin 不识别 Java 保留关键字

java - 在Testcontainers中使用自定义DB docker-image

java - ActionListener - 单选按钮

java - 如何设置从网络摄像头捕获图像的计时器?

java - JFrame关闭操作

java - 了解随机登山者

java - 写入文件,但不仅仅是在最后

java用户界面实现: short-term test + progress indicator w/o using separate dialog

java - 如何关闭两个窗体但仅使用单个命令(SetVisible),Java

java - 当按下 JButton 时,JPanel 会更改 JFrame 内的形状/位置。为什么?