【问题标题】:Eclipse WindowBuilder Not Resizing FrameEclipse WindowBuilder 不调整框架大小
【发布时间】:2013-11-04 21:13:14
【问题描述】:

这是从 Netbeans 迁移到 Eclipse 4.3 和 WindowBuilder 的代码

我无法从 GUI 调整 Frame 的大小,我真的不明白为什么它不可能,当我选择根 Frame 并拖动边缘时,框架根本不会更新。

这与正确使用 LayoutManager 有什么关系吗?据我所知,WindowBuilder 没有访问或编辑 Netbeans 生成的 .form 文件

public class ExploreDBX extends javax.swing.JFrame {

    /**
     * Creates new form ExploreDBX and runs the alteration function
     */
    public ExploreDBX() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jButton4 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jDBXDirList = new javax.swing.JList();
        jScrollPane2 = new javax.swing.JScrollPane();
        jDBXExploreDirFileList = new javax.swing.JList();
        jDBXExploreDirLabel = new javax.swing.JLabel();
        jDBXExploreDirFileLabel = new javax.swing.JLabel();
        jDBXExploreCurrentPathLabel = new javax.swing.JLabel();
        jDBXExploreCurrentPathTextField = new java.awt.TextField();
        jDBXUploadFiles = new javax.swing.JButton();
        jDBXDownloadFiles = new javax.swing.JButton();
        jDBXCreateNewDir = new javax.swing.JButton();
        jDBXDeleteFolder = new javax.swing.JButton();

        jButton4.setText("jButton4");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Explore DBX");
        setResizable(false);

        jDBXDirList.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jDBXDirListMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(jDBXDirList);

        jScrollPane2.setViewportView(jDBXExploreDirFileList);

        jDBXExploreDirLabel.setText("Directories");

        jDBXExploreDirFileLabel.setText("Files");

        jDBXExploreCurrentPathLabel.setText("Current Path");

        jDBXExploreCurrentPathTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jDBXExploreCurrentPathTextFieldActionPerformed(evt);
            }
        });

        jDBXUploadFiles.setText("Upload");
        jDBXUploadFiles.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jDBXUploadFilesActionPerformed(evt);
            }
        });

        jDBXDownloadFiles.setText("Download");
        jDBXDownloadFiles.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jDBXDownloadFilesActionPerformed(evt);
            }
        });

        jDBXCreateNewDir.setText("New Folder");
        jDBXCreateNewDir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jDBXCreateNewDirActionPerformed(evt);
            }
        });

        jDBXDeleteFolder.setText("Delete");
        jDBXDeleteFolder.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jDBXDeleteFolderActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jDBXUploadFiles)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jDBXDownloadFiles)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jDBXCreateNewDir)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jDBXDeleteFolder)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 222, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jDBXExploreDirLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jDBXExploreDirFileLabel)
                                .addGap(0, 0, Short.MAX_VALUE))
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 231, Short.MAX_VALUE)))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jDBXExploreCurrentPathLabel)
                        .addGap(6, 6, 6)
                        .addComponent(jDBXExploreCurrentPathTextField, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addGap(20, 20, 20))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jDBXExploreDirLabel)
                    .addComponent(jDBXExploreDirFileLabel))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE)
                    .addComponent(jScrollPane2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(jDBXExploreCurrentPathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jDBXExploreCurrentPathLabel))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jDBXUploadFiles)
                    .addComponent(jDBXDownloadFiles)
                    .addComponent(jDBXCreateNewDir)
                    .addComponent(jDBXDeleteFolder))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ExploreDBX().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jDBXCreateNewDir;
    private javax.swing.JButton jDBXDeleteFolder;
    private javax.swing.JList jDBXDirList;
    private javax.swing.JButton jDBXDownloadFiles;
    private javax.swing.JLabel jDBXExploreCurrentPathLabel;
    private java.awt.TextField jDBXExploreCurrentPathTextField;
    private javax.swing.JLabel jDBXExploreDirFileLabel;
    private javax.swing.JList jDBXExploreDirFileList;
    private javax.swing.JLabel jDBXExploreDirLabel;
    private javax.swing.JButton jDBXUploadFiles;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    // End of variables declaration//GEN-END:variables
}

稍后编辑#1

创建了一个新文件,测试并调整大小工作,我需要找出导致此问题的原因,并决定是否应该重做整个界面并整理一下

【问题讨论】:

    标签: eclipse swing windowbuilder


    【解决方案1】:

    这个问题是由构造函数末尾的pack(); 调用引起的。删除它,调整大小将按预期工作。

    【讨论】:

      【解决方案2】:

      您在 initComponents 方法中调用了 setResizable(false)。删除它,它会工作。

      WindowsBuilder 根本不使用 .form 文件。 Eclipse 和 Netbeans 具有不同的 GUI 构建器实现。

      【讨论】:

      • removed setResizable ... GUI 的行为相同,如果 resizable 设置为 true,也可以从 Frame 属性中检查,它是,重新启动 IDE,它的行为相同,我需要提一下我可以调整其他大小组件(JTextField 等没有任何问题)
      • also sidenote # 我不确定 Netbeans 自动生成的核心是否与 Eclipse WindowBuilder 的能力兼容,因此应以旧方式手动定义整个结构来代替还是从头开始重做整个界面?
      • @cristi_b 当我删除 setResizable() 时,框架会按预期重新调整大小,这是在 Eclipse 中。您是否试图使框架内的组件随框架重新调整大小?如果是这样,您需要使用允许组件重新调整大小的布局。除非您专门将它们设置为增长,否则组布局将保持组件静态。尝试将它们设置为垂直和水平增长。 |
      • 我会将两个 JList 放在它们自己的面板中,并将您的按钮和文本字段放在另一个面板中。按钮和字段仍然可以使用组布局,但会使内容窗格变为 BorderLayout。将带有 JLists 的面板放在中心,将按钮放在南边。 BorderLayout 中的任何额外空间都会转到中心组件。
      • WindowsBuilder 会忽略 .form 文件。它将反向工程由 netbeans 生成的代码,然后您可以使用 GUIBuilder 随意修改它。但是,生成的代码无法与 Netbeans GUI 构建器一起使用,因为 netbeans 依赖于 .form 文件。
      猜你喜欢
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 2012-12-30
      • 2014-03-17
      • 1970-01-01
      相关资源
      最近更新 更多