下面的Java代码窗口缩放后,布局就会变化,怎样才能让布局不随窗口的缩放而变化

import...(省略)
public class JPanelTest extends JFrame{
JLabel bl1,bl2,bl3;
JButton save,send;
JPanel p1,p2,p3;
JTextField t1,t2,t3;
JTextArea t;
public JPanelTest() {
super("电子邮件");
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
init();
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(p1);
c.add(p2);
c.add(t);
c.add(new JScrollPane(t));
c.add(p3);
this.setBounds(250,200,500,450);
this.setResizable(false);
this.setVisible(true);
}
void init(){
...(省略) }
String getFileText(){
...(省略) }
public static void main(String[] args) {
new JPanelTest();
}
}

那你直接不让缩放窗口就可以了...其他的布局也会变化

frame.setResizable(false);追问

我想要这种效果,但不知道怎么才能让窗口缩放过程中保持布局不变

追答

布局不变指的是样式不变还是大小不变,样式不变的话其余两种布局:BorderLayout和

GridLayout都行,大小不变就不行了..

追问

是指样式不变,可以帮我改一下吗

追答

你布局的代码,感觉好乱... 因为不知道你label的内容和你想的那种布局,所以不好给你改代码

只能告诉你BorderLayout怎么用:

import java.awt.*;
import java.applet.Applet;

public class buttonDir extends Applet {
public void init() {
setLayout(new BorderLayout());
add(new Button("North"), BorderLayout.NORTH);
add(new Button("South"), BorderLayout.SOUTH);
add(new Button("East"), BorderLayout.EAST);
add(new Button("West"), BorderLayout.WEST);
add(new Button("Center"), BorderLayout.CENTER);
}
}
这是API里解释BorderLayout的代码,你看看吧,建议你再去看看API

追问

谢谢,请问我在导入javax.mail是出错,现在下载了javamail-1.4.4,应该把它放在哪里呢

追答

在工程名上右键选择properties-->java build path 然后有个libraries选项卡,右边有个Add External Jars按钮,点击选择

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-12
除了flowlayout,其他应该都不会变化吧追问

我想要这种效果,但不知道怎么才能让窗口缩放过程中保持布局不变

相似回答