关于JFrame的setSize的问题?在线等待! JFrame中做好布局BorderLayout,加入控件后,按某个按钮,我要改变JFrame的尺寸,于是用setSize的方法。结果除了整个JFrame尺寸变化之外,JFrame里的控件都没有随之改变位置。我用了repaint方法也没用。只有先hide,再show才起作用。还有没有什么好办法让JFrame setSize之后里面的控件也相应改变位置? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 revalidate()方法我试过了,也不行啊。 // validate();import java.awt.BorderLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JButton;import javax.swing.JFrame;public class SetSizeTest extends JFrame{ /** * Launch the application * * @param args */ public static void main(String args[]) { try { SetSizeTest frame = new SetSizeTest(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the frame */ public SetSizeTest() { super(); setTitle("http://www.boasoft.com"); setBounds(100, 100, 500, 375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JButton httpwwwboasoftcomButton = new JButton(); httpwwwboasoftcomButton.setText("http://www.boasoft.com"); getContentPane().add(httpwwwboasoftcomButton, BorderLayout.NORTH); final JButton button_1 = new JButton(); button_1.setText("New JButton"); getContentPane().add(button_1, BorderLayout.WEST); final JButton button_2 = new JButton(); button_2.setText("New JButton"); getContentPane().add(button_2, BorderLayout.EAST); final JButton httpwwwboasoftcomButton_1 = new JButton(); httpwwwboasoftcomButton_1.setText("http://www.boasoft.com"); getContentPane().add(httpwwwboasoftcomButton_1, BorderLayout.SOUTH); final JButton setsizeTestButton = new JButton(); setsizeTestButton.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { setSize(800, 600); validate(); } }); setsizeTestButton.setText("SetSize 测试"); getContentPane().add(setsizeTestButton, BorderLayout.CENTER); // }} 给一个简单的:import javax.swing.*;import java.awt.BorderLayout;public class JustTest extends JFrame{ public JustTest() { super("Test"); setSize(400,300); this.setLayout(new BorderLayout()); this.add(new JButton("button"),BorderLayout.WEST); setVisible(true); setResizable(true); } public static void main(String[] args) { new JustTest(); }} JFrame中用BorderLayout;里面的控件当然会随Frame的变化而变化的了。你可以设置Frame的Layout 为null;即JFrame.setLayout(null);这样里面的按纽什么的就不会随Frame的变化而变化了。其它的FlowLayout都是随Frame的变化而变化的。 求高手解决,急,急,急! lucene的应用问题,代码可能长了些!!? 现在我需要速成Java(100分)。 JPCAP程序执行产生错误....文件已经存在...还有错误 急求解答:作业就要到期!!!!!!请好心朋友帮帮我啊。 建议不要使用类型 Date 的方法 getYear()?如何解决? 关于java图形的问题,请问paint(), 和update()是怎么调用的, 以及它们的关系 求jasperReports包及帮助文档 怎么判断一个string为日期格式? 大家给我出出主意 关于DOM4J对XPath的支持 请教一个 System.getProperties().list()的问题
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;public class SetSizeTest extends JFrame
{
/**
* Launch the application
*
* @param args
*/
public static void main(String args[])
{
try
{
SetSizeTest frame = new SetSizeTest();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
} /**
* Create the frame
*/
public SetSizeTest()
{
super();
setTitle("http://www.boasoft.com");
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton httpwwwboasoftcomButton = new JButton();
httpwwwboasoftcomButton.setText("http://www.boasoft.com");
getContentPane().add(httpwwwboasoftcomButton, BorderLayout.NORTH);
final JButton button_1 = new JButton();
button_1.setText("New JButton");
getContentPane().add(button_1, BorderLayout.WEST);
final JButton button_2 = new JButton();
button_2.setText("New JButton");
getContentPane().add(button_2, BorderLayout.EAST);
final JButton httpwwwboasoftcomButton_1 = new JButton();
httpwwwboasoftcomButton_1.setText("http://www.boasoft.com");
getContentPane().add(httpwwwboasoftcomButton_1, BorderLayout.SOUTH);
final JButton setsizeTestButton = new JButton();
setsizeTestButton.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
setSize(800, 600);
validate();
}
});
setsizeTestButton.setText("SetSize 测试");
getContentPane().add(setsizeTestButton, BorderLayout.CENTER);
//
}
}
import javax.swing.*;
import java.awt.BorderLayout;
public class JustTest extends JFrame
{
public JustTest()
{
super("Test");
setSize(400,300);
this.setLayout(new BorderLayout());
this.add(new JButton("button"),BorderLayout.WEST);
setVisible(true);
setResizable(true);
}
public static void main(String[] args)
{
new JustTest();
}
}
你可以设置Frame的Layout 为null;即JFrame.setLayout(null);
这样里面的按纽什么的就不会随Frame的变化而变化了。
其它的FlowLayout都是随Frame的变化而变化的。