Java swing JFrame 改变实例之间的大小

标签 java swing jframe

我的 java 程序正在创建给定 JFrame 窗口的多个实例,但是,jframe 接缝可以在不同实例之间任意更改大小(从小到大)。也就是说,假设我的程序创建了 10 个 jframe 实例,那么 7 个可能是正确的大小,但 3 个更大。这是我的代码:

public class ConvertionDialog extends JFrame{
    private JComboBox<String> selection;
    private JButton okButton;
public ConvertionDialog(){
    super("Select Output Format");
    this.setAlwaysOnTop(true);
    this.setSize(new Dimension(500,55));
    this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    this.selection=new JComboBox<String>(GUI.getInstance().getRdfNotations());
    this.okButton=new JButton("OK");    
    this.setLayout(new BorderLayout());
    this.add(this.selection,BorderLayout.CENTER);
    this.add(this.okButton,BorderLayout.EAST);
    this.setVisible(true);
}
}

jframe 是使用简单的 new ConvertionDialog();

实例化的

这是一个屏幕截图: enter image description here

最佳答案

所有 Swing 组件都应该在事件调度线程 (EDT) 上创建。当您获得随机结果时,问题可能是因为您没有在 EDT 上创建 GUI。

查看在 How to Make Frames 上的 Swing 教程中找到的 FrameDemo 示例代码.该代码将向您展示如何更好地构建代码,以便在 EDT 上创建 GUI。

您还应该阅读教程中有关 Concurrency in Swing 的部分,以了解有关 EDT 的更多信息以及为什么需要这样做。

如果问题仍然存在,那么您需要发布一个正确的 SSCCE演示问题并列出您的操作系统和 JDK 版本,以便使用这些平台的人可以测试代码以查看他们是否有相同的问题。

关于Java swing JFrame 改变实例之间的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36828609/

相关文章:

java - 使用 Java 打印 MySQL 表值

java - IntelliJ不会从Gradle中获取compileOnly依赖项

java - 如何在 JLabels 中应用换行符?

java - 从 JPanel 内的 JButton 而非 JFrame 替换当前 JPanel

从字符串解析通用枚举集的 Java 静态方法

java - 服务器端对云服务执行多个请求

java - 我想从 txt 文件读取数据并写入现有的 JTable

java - 带有jlist的keylistener

java - 如何正确使用JFrame?

java - 单击按钮后关闭 JFrame Java