swing怎么让窗口按照原来的宽度高度比例缩放?比如,我有个窗口,这个窗口是Jframe实现的,我通过鼠标拖拉这个窗口的宽度,使宽度变宽了2倍,那么我希望这个窗口的高度也可以自动跟着变高2倍。求指点啊~~~~~~
谢谢大家~~~~~~
谢谢大家~~~~~~
解决方案 »
- 在spring中用@Component配置的bean怎么设置parent属性
- java中变量的问题
- 学习正则表达式时一问题请教。
- JAVA高手一定要来帮帮忙
- 如何处理java源代码的注释乱码的问题?
- 为什么有些类的变量命名为 ‘_XJXJ’ 这样的形式呢?
- java高难度题 一般人别看
- runtime.getruntime().exec(batch file)
- 如何得到一个数据库查询结果集ResultSet对象包含的记录数?
- applet 如何向页面传递一个参数?
- 求解一个简单的JAVA问题,小菜鸟一枚,求各种老鸟大神路过的进来帮忙解决下,谢谢哈!
- 一款iOS平台下的求路径游戏,想用java求解,不知道是否可行,各路大神帮忙看看
@Override public void componentResized(ComponentEvent e){
... //
}
});
这个我试过了,比如如下代码:
addComponentListener(new ComponentAdapter(){
@Override public void componentResized(ComponentEvent e){
int w= MyFrame.this.getWidth();
MyFrame.this.setSize(w,2*w); //希望以此能保证拖拉宽度时,高度能自动保证是宽度的2倍。
}
});但实际效果是,在拖拉窗口宽度的当时(即保持鼠标左键不松开),高度能自动跟着变成宽度的2倍,但鼠标左键一松开,高度马上又变回去了,即高度又变回拖拉之前的高度了。
你可以试试这样:
addComponentListener(new ComponentAdapter(){
@Override public void componentResized(ComponentEvent e){
SwingUtilities.invokeLater(new Runnable(){
public void run() {
int w= MyFrame.this.getWidth();
MyFrame.this.setSize(w,2*w); //希望以此能保证拖拉宽度时,高度能自动保证是宽度的2倍
}
});
}
});
java.awt.EventQueue.invokeLater(new java.lang.Runnable(){
@Override public void run(){
final JFrame frame = new JFrame("Resize");
frame.setPreferredSize(new Dimension(600, (int)(600 * 0.618)));
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.addComponentListener(new ComponentAdapter(){
@Override public void componentResized(ComponentEvent e){
frame.setPreferredSize(new Dimension(frame.getWidth(), (int)(frame.getWidth() * 0.618)));
frame.pack();
}
});
frame.setVisible(true);
}
});
}