Java 组件尺寸在JFrame中不可调整

Java 组件尺寸在JFrame中不可调整,java,jframe,jbutton,jprogressbar,netbeans-8.1,Java,Jframe,Jbutton,Jprogressbar,Netbeans 8.1,我试图制作一个JFrame,里面有一个JProgressbar和一个JButton,让用户能够看到进程有多远,并能够中止进程 我似乎遇到的唯一问题是,progressbar和button组件总是调整为JFrame大小,而不是我设置的大小。见图一 目标是让它看起来像这个例子 有人有什么建议吗? 见下面我的代码 JFrame f = new JFrame("Retrieve Datalog"); JButton b = new JButton("Abort"); JProgressBar prog

我试图制作一个JFrame,里面有一个JProgressbar和一个JButton,让用户能够看到进程有多远,并能够中止进程

我似乎遇到的唯一问题是,progressbar和button组件总是调整为JFrame大小,而不是我设置的大小。见图一

目标是让它看起来像这个例子

有人有什么建议吗? 见下面我的代码

JFrame f = new JFrame("Retrieve Datalog");
JButton b = new JButton("Abort");

JProgressBar progressBar = new JProgressBar();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setIconImage(ICONBAR.getImage());
f.setResizable(false);
f.setSize(300, 100);    
f.setLocationRelativeTo(getFrame());      
b.setSize(50, 10);            

progressBar.setSize(f.getWidth() - 100, f.getHeight() - 50);    
progressBar.setValue(50);
progressBar.setStringPainted(true);

f.add(progressBar, BorderLayout.NORTH);
f.add(b, BorderLayout.CENTER);    
f.setVisible(true);
附言:
我正在使用NetBeans 8.1 IDE、JDK v8u91,我尝试了一些代码。您可以使用网格包布局。这里有代码和快照

import java.awt.*;
导入javax.swing.*;
/**
*带有进度条和按钮的JFrame。有他们自己的大小。
*
*@作者塔德斯
*/
公共类测试扩展了JFrame{
JButton按钮=新JButton(“取消”);
JProgressBar progressBar=新的JProgressBar();
公开考试(){
GridBagConstraints g=新的GridBagConstraints();
setLayout(新的GridBagLayout());
集合(g,0,0,GridBagConstraints.CENTER);
添加(进度条,g);
集合(g,0,1,GridBagConstraints.CENTER);
添加(按钮,g);
setDefaultCloseOperation(关闭时退出);
设置大小(200100);
setVisible(真);
}
公共void集(gridc、int x、int y、int锚定){
c、 gridx=x;
c、 gridy=y;
c、 锚=锚;
}
公共静态void main(字符串[]args){
新测试();
}

}
我尝试了一些代码。您可以使用网格包布局。这里有代码和快照

import java.awt.*;
导入javax.swing.*;
/**
*带有进度条和按钮的JFrame。有他们自己的大小。
*
*@作者塔德斯
*/
公共类测试扩展了JFrame{
JButton按钮=新JButton(“取消”);
JProgressBar progressBar=新的JProgressBar();
公开考试(){
GridBagConstraints g=新的GridBagConstraints();
setLayout(新的GridBagLayout());
集合(g,0,0,GridBagConstraints.CENTER);
添加(进度条,g);
集合(g,0,1,GridBagConstraints.CENTER);
添加(按钮,g);
setDefaultCloseOperation(关闭时退出);
设置大小(200100);
setVisible(真);
}
公共void集(gridc、int x、int y、int锚定){
c、 gridx=x;
c、 gridy=y;
c、 锚=锚;
}
公共静态void main(字符串[]args){
新测试();
}

}
考虑将框架布局置零。f、 setLayout(空);虽然不是最好的解决方案,但仍然应该有效。组件现在可以调整大小,只是它们似乎卡在了左上角。TADESE发布了正确的解决方案。考虑将帧布局无效。f、 setLayout(空);虽然不是最好的解决方案,但仍然应该有效。组件现在可以调整大小,只是它们似乎卡在了左上角。Tadesse发布了正确的解决方案。谢谢,这非常有效!如果您想(重新)调整任何组件的大小,请不要忘记使用c.ipady和c.ipadx。谢谢,这非常有效!如果要(重新)调整任何组件的大小,请不要忘记使用c.ipady和c.ipadx。