java - JButton 布局问题

标签 java swing

我正在整理通讯录的基本布局,我想知道如何使 3 个测试按钮像箭头按钮一样从一个边缘延伸到另一个边缘。

 private static class ButtonHandler implements ActionListener {
  public void actionPerformed(ActionEvent e) {
   System.out.println("Code Placeholder");
  }
 }

 public static void main(String[] args) {

  //down button
  ImageIcon downArrow = new ImageIcon("down.png");
  JButton downButton = new JButton(downArrow);
  ButtonHandler downListener = new ButtonHandler();
  downButton.addActionListener(downListener);

  //up button
  ImageIcon upArrow = new ImageIcon("up.png");
  JButton upButton = new JButton(upArrow);
  ButtonHandler upListener = new ButtonHandler();
  upButton.addActionListener(upListener);

  //contacts
  JButton test1Button = new JButton("Code Placeholder");
  JButton test2Button = new JButton("Code Placeholder");
  JButton test3Button = new JButton("Code Placeholder");

  Box box = Box.createVerticalBox();
  box.add(test1Button);
  box.add(test2Button);
  box.add(test3Button);

  JPanel content = new JPanel();
  content.setLayout(new BorderLayout());
  content.add(box, BorderLayout.CENTER);
  content.add(downButton, BorderLayout.SOUTH);
  content.add(upButton, BorderLayout.NORTH);

  JFrame window = new JFrame("Contacts");
  window.setContentPane(content);
  window.setSize(400, 600);
  window.setLocation(100, 100);
  window.setVisible(true);

 }

最佳答案

跟进 @kloffy 的建议:

package playground.tests;

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

import junit.framework.TestCase;

public class ButtonTest extends TestCase {

    public void testThreeButtons() throws Exception {
          JPanel panel = new JPanel();
          panel.setLayout(new GridLayout());
          JButton button1 = new JButton("A");
          JButton button2 = new JButton("B");
          JButton button3 = new JButton("C");
          panel.add(button1);
          panel.add(button2);
          panel.add(button3);

          JFrame window = new JFrame("Contacts");
          window.setContentPane(panel);
          window.setSize(300, 600);
          window.pack();
          window.setVisible(true);
          int width = button1.getWidth();
          assertEquals(width, button2.getWidth());
          assertEquals(width, button3.getWidth());
    }
}

关于java - JButton 布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695141/

相关文章:

java - 一些功能没有按预期工作

java - 如何发送Android汽车模拟器的谷歌地图通知?

java - JPanel 绘图 - 为什么我必须重写 paintComponent 方法?

java - 替换 JTree 句柄图标

java - Swing 中带有小字体的字符串的边界

Java:将 MouseListener 添加到自定义 JComponent

java - 如何将 JRebel 与 Mule ESB 集成?

java - 将所有请求重定向到 Wicket 中的特定页面

java - apache java log4j 如何显示消息控制台和文件

java - Eclipse 中总是抛出 ZipException