Java JTable和JToolBar奇怪地调整大小

Java JTable和JToolBar奇怪地调整大小,java,swing,miglayout,jtoolbar,Java,Swing,Miglayout,Jtoolbar,今天我注意到我的程序有非常奇怪的行为。基本上我有JToolBar uder,它是带有JTable的JScrollPane。都在JPanel内部,在JFrame内部。每个容器都使用MigLayout 现在,如果我启动应用程序,这是它的默认外观: 但是,如果我移动JToolBar并将其剪辑回其原始位置,现在看起来如下所示: 突然之间就没有了边界。若一开始并没有,我会优先考虑,但改变GUI的外观并不是一个很好的特性。。。如果您知道问题所在,请帮助:) 代码: 从技术上讲,JToolBar可以添加到具有

今天我注意到我的程序有非常奇怪的行为。基本上我有JToolBar uder,它是带有JTable的JScrollPane。都在JPanel内部,在JFrame内部。每个容器都使用MigLayout

现在,如果我启动应用程序,这是它的默认外观:

但是,如果我移动JToolBar并将其剪辑回其原始位置,现在看起来如下所示:

突然之间就没有了边界。若一开始并没有,我会优先考虑,但改变GUI的外观并不是一个很好的特性。。。如果您知道问题所在,请帮助:)

代码:


从技术上讲,JToolBar可以添加到具有任何布局约束的容器中。仅当用于BorderLayout时,才支持将浮动工具栏自动重新添加到容器。将其添加到contentPane,而不是添加到主面板:

private void initToolbar() {
    toolbar = new JToolBar(JToolBar.HORIZONTAL);
    toolbar.add(new JButton());
    add(toolbar, BorderLayout.NORTH);
}

顺便说一句:您的代码不会在您的上下文之外编译-MyPanel、MyTableModel、MenuListener是其他任何地方都不可用的本地类,而且它缺少一个main方法。为了更好的帮助,请考虑在将来提供一个SSCCE:-(<)/p>您如何调用<代码>新的MeulistReNe()/<代码>?code>MenuListener是一个接口。如果您发布了一个示例,演示了JDK附带的类的问题,那么它会更有帮助,除非您的第三方类(miglayout、mytable)是问题的原因。没有额外的类,人们无法运行您的代码,这限制了他们提供帮助的能力。一个
main
方法也不错。
private void initToolbar() {
    toolbar = new JToolBar(JToolBar.HORIZONTAL);
    toolbar.add(new JButton());
    add(toolbar, BorderLayout.NORTH);
}