Java中JDialog如何调整大小,要可行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中JDialog如何调整大小,要可行相关的知识,希望对你有一定的参考价值。
setBounds不行
JDidalog有一个setBound()方法可以更改对话框的大小,示例如下:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* This program demonstrates the creation of a JDialog from a super-window.
* The created dialog is on the mode "Modal".
* @author han
*
*/
public class SwingJDialog
public SwingJDialog()
final JFrame jf=new JFrame("弹出窗体实验");
// Some methods defined by Toolkit query the native operating system directly.
Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();
int Swing1x=500;
int Swing1y=300;
jf.setBounds(screensize.width/2-Swing1x/2,screensize.height/2-Swing1y/2,Swing1x,Swing1y);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=jf.getContentPane();
c.setBackground(Color.pink);
c.setLayout(null);
Dimension Swing1size=jf.getSize();
JButton jb=new JButton("弹出对话窗");
int jbx=100;
int jby=30;
jb.setBounds(Swing1size.width/2-jbx/2,Swing1size.height/2-jby/2,jbx,jby);
//jb.setBounds(Swing1x/2-jbx/2,Swing1y/2-jby/2,jbx,jby);
c.add(jb);
class Dialog1
JDialog jd=new JDialog(jf,"JDialog窗体",true);
Dialog1()
jd.setSize(300,200);
Container c2=jd.getContentPane();
c2.setLayout(null);
JLabel jl=new JLabel("只是一个对话框");
jl.setBounds(0,-20,100,100);
JButton jbb=new JButton("确定");
jbb.setBounds(100,100,60,30);
c2.add(jl);
c2.add(jbb);
jbb.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
jd.dispose();
//System.exit(0);
);
System.out.println("OK");
jd.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
jb.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
new Dialog1().jd.setVisible(true);//弹出对话框
System.out.println("OK2");
);
System.out.println("OK3");
public static void main(String[] args)
new SwingJDialog();
参考技术A 肯定可以用setBounds的。
setBounds的后两个参数,就是长度和高,你设置得大点,肯定是可行的。一般窗体、对话框只用setBounds方法。
setLocation和setSize这两个方法的综合其实就是JDialog。由于对话框处于屏幕下,所以本身不存在布局管理,直接用setBounds方法。
四个参数分别是:对话框左上角起点横坐标,对话框左上角起点纵坐标,对话框的长度,对话框的高。
要不你setVisable(true);一下就可见了。本回答被提问者采纳 参考技术B setlocation和setsize试下行不行
java - 如何在java swing中检查当前窗口大小?
【中文标题】java - 如何在java swing中检查当前窗口大小?【英文标题】:How to check current window size in java swing? 【发布时间】:2012-01-10 02:47:42 【问题描述】:例如,窗口的大小改变了(用户调整了它的大小),如何获取当前的窗口大小?
【问题讨论】:
"如何获取当前窗口大小?" 你认为你为什么需要它?我已经编写了 100 多个 GUI,并且很少需要获取父容器的大小(尤其是在调整大小时)。 你如何处理框架的大小调整? 【参考方案1】:Rectangle r = frame.getBounds();
h = r.height;
w = r.width;
【讨论】:
【参考方案2】:假设您有一个在其中绘制界面的 JFrame:
Dimension size = frame.getBounds().getSize()
返回框架的尺寸。此外,您可以为框架提供一个调整大小处理程序,以便在用户调整框架大小时捕获:
class ResizeListener implements ComponentListener
public void componentHidden(ComponentEvent e)
public void componentMoved(ComponentEvent e)
public void componentShown(ComponentEvent e)
public void componentResized(ComponentEvent e)
Dimension newSize = e.getComponent().getBounds().getSize();
frame.addComponentListener(new ResizeListener());
【讨论】:
如果您不覆盖大多数方法,我会考虑改用ComponentAdaper【参考方案3】:只需使用getSize()
方法:javadoc
【讨论】:
我在该链接上收到 404。请更新它并补充您的答案,因此这不会在将来使其无效。getSize()
哪个类的方法?
@VictorMoraes 自从 OP 暂停了一段时间,我更新了断开的链接。以上是关于Java中JDialog如何调整大小,要可行的主要内容,如果未能解决你的问题,请参考以下文章
磁盘上的图像文件大小(KB)随着Java中动态图像大小的调整(减小大小)而增加