如何在改变帧大小之后更改代码,帧上其他对象的大小是否也会以相同的比例改变?绑定帧大小及其对象大小
package application;
import javax.swing.*;
import java.awt.*;
public class Program extends JFrame {
private GroupLayout layout;
private GroupLayout.Group groupX;
private GroupLayout.Group groupY;
public Program() {
initialize();
}
private void initialize() {
this.layout = new GroupLayout(this.getContentPane());
this.groupX = this.layout.createParallelGroup(GroupLayout.Alignment.LEADING);
this.groupY = this.layout.createParallelGroup(GroupLayout.Alignment.LEADING);
}
public void addComponent(Component component, int x, int y) {
getContentPane().setLayout(layout);
groupX.addGroup(layout.createSequentialGroup()
.addGap(x, x, x)
.addComponent(component, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE));
groupY.addGroup(layout.createSequentialGroup()
.addGap(y, y, y)
.addComponent(component, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE));
layout.setHorizontalGroup(groupX);
layout.setVerticalGroup(groupY);
}
public static void main(String[] args) {
Program jf = new Program();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(new Rectangle(0, 0, 250, 100));
JButton p = new JButton("Click!!");
jf.addComponent(p, 86, 20);
jf.setVisible(true);
}
}
如何更改下面的代码,改变帧大小后,帧上其他对象的大小也会以相同的比例改变?
如果我理解正确,你想放大用户界面?如果是这样,那就不支持(并且与LayoutManager的任务无关)。你必须自己实施它,f.i.使用JLayer(jdk7)或JXLayer(jdk6) – kleopatra 2013-04-04 08:52:56
不。我不想放大UI。我想实现类似于C#中的锚点,这意味着如果我改变框架的宽度,它的对象的宽度也会改变。 – user2049371 2013-04-04 09:36:50
好的,谢谢澄清(但请注意,您的图像是误导性的,因为字体大小随着按钮尺寸的增大而增加,除非您放大缩小时才会发生) – kleopatra 2013-04-04 09:42:15