【问题标题】:I don't know how put distance between buttons我不知道如何设置按钮之间的距离
【发布时间】:2017-02-15 18:21:09
【问题描述】:

我想在按钮之间放置空间:

我想把按钮放在中间,一个在另一个下方,它们之间有一定的距离,如果我的代码很乱,我很抱歉,我想做一些更复杂的事情,它只是一个原型,加上你不知道Java GUI 所以接受了批评

班级第一:

import javax.swing.*;

public class first {

    public static void main(String[] args) {

        second ob = new second();
        ob.setLocation(500, 100);
        ob.setSize(500, 500);
        ob.setVisible(true);
        ob.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}

二等奖:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import java.util.Formatter;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.text.Position;
import java.util.*;


public class second extends JFrame {
    int i;
    private JPanel pan1;
    private JPanel pan2;
    private JScrollPane scroll;
    private JTextArea tx;
    private JButton[] buton = new JButton[50];
    private Box box = new Box(BoxLayout.Y_AXIS);

    second() {

        pan1 = new JPanel();
        pan1.setBackground(Color.GREEN);
        pan1.setLocation(0, 0);
        pan1.setPreferredSize(new Dimension(500, 100));

        add(pan1, BorderLayout.NORTH);



        for (int i = 0; i < 50; i++) {

            buton[i]=new JButton("Button "+i);
            box.add(buton[i]);
        }

        JScrollPane sp = new JScrollPane(box);

        Dimension d = new Dimension(box.getComponent(0).getPreferredSize());

        sp.getVerticalScrollBar().setUnitIncrement(d.height);

        d.height *= 10; // Show at least 10 buttons

        sp.getViewport().setPreferredSize(d);
        add(sp);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);


    }
}

【问题讨论】:

标签: java


【解决方案1】:

一个在另一个下方,它们之间有距离

阅读 How to Use BoxLayout 上的 Swing 教程部分。您可以在每个按钮之间添加verticalStrut(...) 您为此使用Box.CreateVerticalStrut(...) 方法。

另一种方法可能是使用GridLayout。您可以在创建布局时指定网格中的垂直间隙。注意:使用这种方法,所有按钮都将具有相同的大小并填充可用空间,在这种情况下,您可能需要将具有 GridLayout 的面板嵌套在另一个面板中,以便按钮以合理的宽度显示。

类名应该以大写字符开头。查看 JDK API 中的所有类。请注意它们都是如何以大写字符开头的。

【讨论】:

  • 我尝试使用 GridLayout 但我不知道为什么框架未打开说程序已完成但我没有看到任何框架
  • @cosminciuciu,我也是。更改布局不会影响框架的显示。为什么不从添加垂直支柱开始。它对您的 for 循环进行了一行更改。
  • 作为一个不知道更多java gui的人,如果你可以更精确地使用垂直支柱
  • @cosminciuciu,很高兴它有帮助。不要忘记通过单击复选标记“接受”答案,以便人们知道问题已解决。
  • @camickr 对不起,但我不知道在哪里点击复选标记,所以人们知道问题已经解决了。所以如果你很好,请给我一个打印屏幕来了解我在哪里给出反馈并关闭这个答案
猜你喜欢
  • 1970-01-01
  • 2013-07-22
  • 2018-07-27
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多