Swing 窗体ContentPane的问题----在线等,解决问题马上结帖

iSuperBaby 2006-06-06 02:19:29
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Test {

private JFrame frame;


public static void main(String args[]) {
try {
Test window = new Test();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}


public Test() {
initialize();
}


private void initialize() {
frame = new JFrame();
frame.getContentPane().setBackground(new Color(255, 0, 0));
frame.setBackground(new Color(0, 0, 0));
frame.getContentPane().setLayout(null);
frame.setBounds(100, 100, 100, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//测试按扭
final JButton testButton = new JButton();
testButton.addMouseListener(new MouseAdapter() {
public void mouseClicked(final MouseEvent e) {

frame.setBounds(100, 100, 200, 200);
//结果发现Frame大小变了,可是怎么让ContentPane大小也随之改变呢
}
});
testButton.setText("Test");
testButton.setBounds(10, 10, 70, 30);
frame.getContentPane().add(testButton);
}

}
...全文
222 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kokonol 2006-07-07
  • 打赏
  • 举报
回复
frame.validate();
spoony_peng 2006-06-10
  • 打赏
  • 举报
回复
请问frame.validate()方法什么意思啊
chenweionline 2006-06-10
  • 打赏
  • 举报
回复
public void validate()验证此容器及其所有子组件。
使用 validate 方法会使容器再次布置其子组件。已经布置容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。
stamp80 2006-06-07
  • 打赏
  • 举报
回复
让frame的大小无法调整
mq612 2006-06-06
  • 打赏
  • 举报
回复
不建议使用setBounds(int,int,int,int);方法


frame.setSize(int,int); // 设置窗体大小
frame.setLocation(int,int); // 设置窗体位置
chenweionline 2006-06-06
  • 打赏
  • 举报
回复
frame.setBounds(100, 100, 200, 200);
//结果发现Frame大小变了,可是怎么让ContentPane大小也随之改变呢

// 加一行
frame.validate();

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧