通过将JDialog推向屏幕边缘来调整其大小

时间:2015-08-13 21:35:04

标签: java swing jframe jdialog autoresize

我有一个JFrame和一个JDialog。后者只包含一个JTextArea。 Windows 7现在可以通过将窗口推向右边缘或左边缘来将窗口大小调整到屏幕的一半。这适用于JFrame窗口。但是,JDialog窗口不会对它做出反应,尽管它可以手动调整大小。我认为它与JDialogs缺失的最大化/最小化功能密切相关。另一方面,不建议将JFrame创建为子帧。

**编辑1 **

这是测试代码:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.WindowConstants;

public class JDialogResizetest extends JFrame {                  
    private JButton openButton;      

    public JDialogResizetest() {
        openButton = new JButton();

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new FlowLayout());

        openButton.setText("Open");
        openButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                openButtonActionPerformed(evt);
            }
        });
        getContentPane().add(openButton);

        pack();
    }                       

    private void openButtonActionPerformed(ActionEvent evt) {                                           
        JDialog dialog = new JDialog(this, false);
        dialog.getContentPane().add(new JTextPane());
        dialog.setVisible(true);
    }                                          

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JDialogResizetest().setVisible(true);
            }
        });
    }            
}

这是所需行为的图片: enter image description here

0 个答案:

没有答案