Удалить три точки "..." из кнопки JButton? - PullRequest
9 голосов
/ 27 апреля 2011

Привет, я создаю программу калькулятора с несколькими маленькими кнопками, я хочу, чтобы на одной из кнопок было "Ans", но всякий раз, когда я делаю JButton меньше 50, 50, он показывает три точки. «...», как я могу удалить эти точки и показать обычный текст?

Ответы [ 5 ]

22 голосов
/ 27 апреля 2011

Вероятно, это потому, что поле вашей кнопки слишком велико.

Попробуйте это:

myButton.setMargin(new Insets(0, 0, 0, 0));

Вы также можете отключить границу:

button.setBorder(null);
3 голосов
/ 27 апреля 2011

Не устанавливайте предпочтительный размер кнопки.Используйте предпочтительный размер кнопки, и пусть менеджер по расположению разметит компоненты.Предпочтительный размер гарантирует, что весь текст будет отображаться правильно при различном внешнем виде.

1 голос
/ 27 апреля 2011

Этот код пытается объяснить, почему макеты и предпочтительные размеры так важны.Важная часть заключается во вводе / выводе.

TestGuiSize.java

import java.awt.*;
import javax.swing.*;

class TestGuiSize {

    public static void addButtonToPanel(JPanel panel, String label) {
        JButton button = new JButton(label);
        button.setMargin(new Insets(1,1,1,1));
        panel.add(button);
    }

    public static void main(String[] args) {
        JPanel p = new JPanel(new GridLayout(4,3,3,3));
        addButtonToPanel(p, "7");
        addButtonToPanel(p, "8");
        addButtonToPanel(p, "9");
        addButtonToPanel(p, "/");

        addButtonToPanel(p, "4");
        addButtonToPanel(p, "5");
        addButtonToPanel(p, "6");
        addButtonToPanel(p, "*");

        addButtonToPanel(p, "1");
        addButtonToPanel(p, "2");
        addButtonToPanel(p, "3");
        addButtonToPanel(p, "-");

        addButtonToPanel(p, "0");
        p.add(new JLabel(""));
        addButtonToPanel(p, "Del");
        addButtonToPanel(p, "+");

        Dimension d = p.getPreferredSize();
        System.out.println(
            "Preferred Size: " +
            d.getWidth() +
            "x" +
            d.getHeight());

        JOptionPane.showMessageDialog(null, p);
    }
}

Ввод / вывод

prompt> java TestGuiSize
Preferred Size: 113.0x105.0

prompt>java -Dswing.plaf.metal.controlFont=Dialog-22 TestGuiSize
Preferred Size: 169.0x157.0

prompt>java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel TestGuiSize
Preferred Size: 93.0x93.0

prompt>java -Dswing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel TestGuiSize
Preferred Size: 205.0x129.0

prompt> 

Параметры времени выполнения - это только верхушкаАйсберг различий между запусками, которые могут потопить код GUI приложения.Макеты рассчитаны на такие различия.

0 голосов
/ 20 января 2014

Используйте setMargin(Insets m), чтобы настроить расстояние между рамкой JButton и надписью. По умолчанию (2, 14, 2, 14). Чтобы максимизировать пространство, доступное для метки (и полностью удалить точки), вы можете использовать что-то вроде

myButton.setFont(new Font("Tahoma", Font.BOLD, 11));
myButton.setMargin(new Insets(0, -1, 0, -20));
myButton.setHorizontalAlignment(SwingConstants.LEFT);
0 голосов
/ 27 апреля 2011

Вы можете изменить размер шрифта на кнопке. Смотрите эти ссылки:

Настройка размера шрифта

Увеличение размера шрифта (Может быть легко изменено для уменьшения размера шрифта)

...