如何使JButton上的图标和文本左对齐

3

我想让文本和图标只在左侧对齐

这里是代码:

import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class LeftSide
{
public LeftSide()
{
JFrame frame = new JFrame("Button");
JPanel panel = new JPanel();
JButton button = new JButton("Submit");
button.setPreferredSize(new Dimension(200, 30));
button.setIcon(new ImageIcon(this.getClass().getResource("submit.gif")));
panel.add(button);
frame.add(panel);
frame.setVisible(true);
}

public static void main(String[] args)
{
new LeftSide();
}

如果我运行这段代码,我会在按钮中央得到图标和文本,那么如何将它们移到左侧呢?

进入图片描述


也许现在是时候接受一些你问题的解决方案了。 - user3437460
2个回答

5

要将文本左对齐,请使用 button.setHorizontalAlignment(SwingConstants.LEFT);

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

public class LeftSide
{
    public LeftSide()
    {
        JFrame frame = new JFrame("Button");
        JPanel panel = new JPanel();
        JButton button = new JButton("Submit");
        button.setPreferredSize(new Dimension(200, 30));
        button.setIcon(new ImageIcon(this.getClass().getResource("submit.gif")));
        button.setHorizontalAlignment(SwingConstants.LEFT);
        panel.add(button);
        frame.add(panel);
        frame.setVisible(true);
    }

    public static void main(String[] args)
    {
        new LeftSide();
    }
}

@krato:也许你想编辑一下你的回答。以防其他人从这里开始进行Swing UI开发。使用SwingUtilities.invokeLater(new LeftSide())确保所有操作都在EventDispatchThread中完成,这是必须的。这只是一个想法,不是必须的。 - Alexander

2

JButton 继承自 AbstractButton类,该类提供了一个方法 setHorizontalAlignment(int),可以完全满足您的需要。使用例如 SwingConstants.LEFTSwingConstants.LEADING 来实现图标和文本的左对齐。JavaDoc中有更多信息可供参考。


@ShimbuGowda,如果它能够正常工作,那么您应该通过单击复选标记来“接受”答案,以便人们知道问题已经解决。 - camickr
抱歉,我之前不知道,现在我知道了。再次感谢。 - SHAMBANNA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接