繁体   English   中英

单击按钮更改jFrame的大小

[英]Changing the size of a jFrame on button click

我正在作为项目的一部分在jFrame上创建“演示文稿”,并且需要一些帮助。 我以200、200尺寸的框架开始,中间有一个按钮,上面写着“ Let's Start”,然后单击它,框架的大小就会改变。 当我单击该按钮时,您必须拖动窗口以使其已经定义好的尺寸,因为该窗口保持原始的200 x 200,不会将窗口打开到1335 x 675。

这是我的代码。

package randomGUIs;

import java.awt.Color;
import java.awt.Dimension;

public class Presentation extends javax.swing.JFrame {

public Presentation() {
    initComponents();

    startPanel.setBackground(Color.blue);

}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    startPanel = new javax.swing.JPanel();
    jButton1 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jButton1.setText("Let's Start");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout startPanelLayout = new javax.swing.GroupLayout(startPanel);
    startPanel.setLayout(startPanelLayout);
    startPanelLayout.setHorizontalGroup(
        startPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(startPanelLayout.createSequentialGroup()
            .addGap(50, 50, 50)
            .addComponent(jButton1)
            .addContainerGap(49, Short.MAX_VALUE))
    );
    startPanelLayout.setVerticalGroup(
        startPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(startPanelLayout.createSequentialGroup()
            .addGap(78, 78, 78)
            .addComponent(jButton1)
            .addContainerGap(77, Short.MAX_VALUE))
    );

    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()
            .addComponent(startPanel, javax.swing.GroupLayout.DEFAULT_SIZE,      javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(startPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addContainerGap())
    );

    pack();
}// </editor-fold>                        

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    startPanel.setSize(new Dimension(1335, 675));
    startPanel.setMaximumSize(new Dimension(1335, 675));
    startPanel.setMinimumSize(new Dimension(1335, 675));

    jButton1.setVisible(false);

}                                        

public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Presentation().setVisible(true);
        }
    });
}

private javax.swing.JButton jButton1;
private javax.swing.JPanel startPanel;

}

我试过使用startPanel.repaint(); 没有运气。

除非您告知JFrame,否则JFrame不会自动调整其大小。 像这样:

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

        startPanel.setSize(new Dimension(1335, 675));
        startPanel.setMaximumSize(new Dimension(1335, 675));
        startPanel.setMinimumSize(new Dimension(1335, 675));

        frame.setSize(1335, 675);

        jButton1.setVisible(false);

    }

您还可以根据需要执行JFrame类的pack()函数。

只需使用此功能设置帧大小。 为了使用此功能,您必须包括相关的软件包。

import java.awt.Dimension;
...
setSize(new Dimension(1320,220));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM