Java 如何将所有JProgressbar与特定行对齐,以显示其外观如目标所示
我有10个JProgressbar,我试着把所有的都放在同一个对齐位置,这样看起来就像目标中所示,但当我跟着它跑的时候,就像失败部分所示Java 如何将所有JProgressbar与特定行对齐,以显示其外观如目标所示,java,swing,Java,Swing,我有10个JProgressbar,我试着把所有的都放在同一个对齐位置,这样看起来就像目标中所示,但当我跟着它跑的时候,就像失败部分所示 import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.FlowLayout; import javax.swing.*; public class YumYumYum { private static JFrame f
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import javax.swing.*;
public class YumYumYum {
private static JFrame f = new JFrame();
private static JPanel panelFirst;
public JProgressBar createJP(int input) {
JProgressBar jp = new JProgressBar(JProgressBar.VERTICAL);
jp.setPreferredSize(new Dimension(10, input));
return jp;
}
public YumYumYum() {
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setLayout(new FlowLayout());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
// Main Menu
panelFirst = new JPanel();
panelFirst.setBackground(Color.BLACK);
panelFirst.setLayout(new FlowLayout(FlowLayout.LEFT, 5,30));
panelFirst.setVisible(true);
panelFirst.add(createJP(10));
panelFirst.add(createJP(20));
panelFirst.add(createJP(30));
panelFirst.add(createJP(40));
panelFirst.add(createJP(50));
panelFirst.add(createJP(60));
panelFirst.add(createJP(70));
panelFirst.add(createJP(80));
panelFirst.add(createJP(90));
panelFirst.add(createJP(100));
f.getContentPane().add(panelFirst);
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
YumYumYum s = new YumYumYum();
}
});
}
}
您可以使用更灵活的LayoutManager,如或GridBagLayout 这(大致)给了我想要的结果:
MigLayout mig = new MigLayout(null, null, "[align bottom]");
getContentPane().setLayout(mig);
for (int i = 1; i <= 10; i++) {
getContentPane().add(createJP(i*10));
}
MigLayout mig=新的MigLayout(null,null,“[align bottom]”);
getContentPane().setLayout(mig);
for(int i=1;i jp.setBackground(Color.BLACK);解决了这个问题。你能解释一下,你的目标是什么吗?我的目标类似于但没有像现在显示的边框一样的边框“如果你想固定大小,为什么要使用PreferredSize?”一个原因是版面管理员更倾向于使用首选大小,而不是大小。
MigLayout mig = new MigLayout(null, null, "[align bottom]");
getContentPane().setLayout(mig);
for (int i = 1; i <= 10; i++) {
getContentPane().add(createJP(i*10));
}