我正在编写一个应该在广播电台上显示信息的程序,我希望用户通过点击他们喜欢的频道图像来获取该信息。
使用网格布局设置通道,但我希望每个网格内部都是通道图像和图像正下方通道的名称。所以我认为BoxLayout
内的GridLayout
可以解决问题,但我没有让GUI看起来像我想要的那样。
jf = new JFrame();
jf.setTitle("tutorial");
jf.setSize(500, 500);
jf.setMinimumSize(new Dimension(500, 500));
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel jPanel = new JPanel();
jPanel.setLayout(new BoxLayout(jPanel,BoxLayout.Y_AXIS));
JButton jButton1 = new JButton("first");
JButton jButton2 = new JButton("second");
jPanel.add(jButton1);
jPanel.add(jButton2);
jf.add(jPanel);
grid = new JPanel();
grid.setLayout(new GridLayout(3,4,5,10));
grid.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
JPanel jPanel2 = new JPanel();
jPanel.setLayout(new BoxLayout(jPanel,BoxLayout.PAGE_AXIS));
JButton jButton = new JButton("first");
JButton jButton12 = new JButton("second");
jPanel.add(jButton);
jPanel.add(jButton12);
grid.add(jPanel);
grid.add(jPanel2);
jf.add(grid);
以下是我尝试将带有两个按钮的框布局放入网格布局的示例代码。
我应该如何将一个布局放入另一个布局?
答案 0 :(得分:1)
回复:
[...]我希望每个网格内部都是通道的图像和图像正下方的通道名称。
请参阅How to Use Buttons, Check Boxes, and Radio Buttons:
ImageIcon middleButtonIcon = createImageIcon("images/middle.gif"); ... b2 = new JButton("Middle button", middleButtonIcon); b2.setVerticalTextPosition(AbstractButton.BOTTOM); b2.setHorizontalTextPosition(AbstractButton.CENTER);