下面的代码当点击setSize的时候按钮的大小真的改了,但是按钮的大小改变不是会调用布局管理器的吗,所有不应该改变才对呀。
还有当改变位置时 布局管理器公布工作
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class dsfsd extends JFrame{
private JButton jb;
public dsfsd(){
super("fds");
setVisible(true);
jb=new JButton("fds");
add(jb);
pack();
jb.setSize(100,100);
jb.addActionListener(
new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
jb.setSize(200,200);
jb.setLocation(100,100);
}
}
);
}
public static void main (String[] args) {
try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception ex) {
}
new dsfsd();
}
}

解决方案 »

  1.   

    不知道你什么意思,但是你试试这个改过后的是不是就是你要的。
    public SimpleTest(){ 
    super("fds"); 
     
    jb=new JButton("fds"); 

    add(jb); 
    pack(); 
    jb.setSize(100,100); 
    jb.addActionListener( 
    new ActionListener(){ 
    public void actionPerformed(java.awt.event.ActionEvent e){ 
    jb.setSize(200,200); 
    jb.setLocation(100,100); 


    ); 

    setSize(500, 500);
    setVisible(true);
      

  2.   

    setVisible()楼主为什么要先设置呢
      

  3.   

    setsize会改变的。应该用setPreferredSize更好。
      

  4.   

    楼上的几位可能没明白我的意思
    因为我的布局管理器是默认的布局管理器,我想布局管理器应该能起到管理布局的作用,也就是如果真的管理了布局setsize函数应该不起作用,但是事实却相反,setsize函数轻易的剥夺了布局管理器的权限改变了布局。
    看了源码看到当size改变的时候会调用布局管理器相关函数,但是为什么还是改变了按钮的大小呢?