我想要一种使用Java Swing在GUI中表示组件的顺序方式。我目前正在使用带有BOX的BorderLayout。
我想要左边的JFileChooser,中间的JButtons和verticalFrame右边的JList。
上图显示了我当前的组件对齐情况。
如果有人能告诉我如何根据我们的需要调整组件,那对我来说真的很有帮助。
根据m图,JList位于顶部,然后是b复选框,然后是JFileChooser,后跟三个按钮。
答案 0 :(得分:3)
我的答案不是......,但BorderLayout
JList
到EAST
(或WEST
)区域
JFileChooser
到中心区域
JPanel
JButtons
SOUTH
(或NORTH
)区域
可能会使用GridBagLayout
(非常复杂的LayoutManager
)
易于使用MigLayout
修改
I am unable to add JList to EAST or WEST since the frame is not getting
extended more than the JFileChooser.
问:你不能或有某些要求(e)或限制
答:我最初的想法是错的
来自代码
import java.awt.*;
import javax.swing.*;
public class BorderLayoutWithJComponents {
public BorderLayoutWithJComponents() {
String[] subItems1 = {"Red", "Blue", "Green", "Circle", "Square",
"Triangle", "Apple", "Orange", "Banana"};
JList list = new JList(subItems1);
JFileChooser myFileChooser= new JFileChooser();
JButton one = new JButton("One");
JButton two = new JButton("Two");
JButton three = new JButton("Three");
JPanel panel = new JPanel();
panel.add(one);
panel.add( two);
panel.add(three);
JFrame f = new JFrame("LayoutTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(list, BorderLayout.WEST);
f.add(myFileChooser, BorderLayout.CENTER);
f.add(panel, BorderLayout.SOUTH);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new BorderLayoutWithJComponents();
}
});
}
}