java - 如何设置添加到JPanel 上的按钮的大小和边界?

标签 java swing

我已经使用 swing 在 java 中编写了代码。因此我将向 JPanel 添加一个 JscrollPane 然后我将以垂直方式向 JPanel 添加固定大小的按钮

JPanel panel=new JPanel(); 
panel.setBackground(Color.WHITE); 
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); 
int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS; 
int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS;  
JScrollPane jsp=new JScrollPane(panel,v,h); 
jsp.setPreferredSize(new Dimension(600,600)); 
jsp.setBounds(150,670,850,200); 
frame.add(jsp); 

然后我在运行时向它添加按钮。

 for(i=0;i<n;i++)  
{ 
     button[i]=new JButton(); 
     button[i].setBounds(20,y,120,120); 
     button[i].setSize(120,120); 
     button[i].setToolTipText(file[i].toString());        
     button[i].setIcon(Icon); 
     panel.add(button[i]);    
     y=y+140; //initially y=20 so 1st button on x=20,y=20 2nd button on x=20,160
 } 

我想在另一个下面添加一个按钮...(即我得到一个垂直滚动条)

即按钮1

 button2 

   ' 

   ' 

问题是我使用 setsize/preffered size 设置的按钮的大小和边界,而 setbounds 根本不影响按钮的大小和位置(添加在面板上)...

怎么做? 谁能帮帮我???

最佳答案

如果要设置组件的位置和大小(手动),容器不应该使用LayoutManager,即将其设置为null即可删除默认管理器:

    panel.setLayout(null);
    ...
        button[i].setBounds(20, y, 120, 120);
        // setSize is not needed
        ...
        panel.add(button[i]);

关于java - 如何设置添加到JPanel 上的按钮的大小和边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289903/

相关文章:

java - 使用 -cflags创建 jar

java - 如何在android中以编程方式使用HFP-bluetooth连接到远程电话

java - 将 JButton 重绘限制为状态更改?

java - 未为类型 HelloWorld 定义 JFrame 方法

java - MVC项目结构验证类(java)

java - 包类不存在错误

java - 嵌套迭代器类

java - 添加到面板时组件未出现

java - 如何刷新绑定(bind)的jTable?

java - 检查 JPanel 是否包含 JButton