【问题标题】:How can i style a JButton? [duplicate]如何设置 JButton 样式? [复制]
【发布时间】:2017-05-30 08:13:39
【问题描述】:

我需要使用带有图标和文本的 JButton。我尝试使用

JButton btnLogout = new JButton();
ImageIcon icon = new ImageIcon(getClass().getResource("icon.png"));
btnLogout.setIcon(icon);
btnLogout.setText("Logout");

但这给了我一个像

这样的按钮
+---------+
|icon|text|
+---------+

但我需要像这样的按钮

+--------+
|  icon  |
|  Text  |
+--------+

我如何在 java 中做到这一点?

【问题讨论】:

    标签: java swing jbutton


    【解决方案1】:

    你应该先用谷歌搜索一下。你可以找到很多类似的解决方案

    无论如何,您可以使用 html 来做到这一点。

    String text= "<html>"
                    + "<center>"
                    + "<img src=\"file:" + getClass().getResource("icon.png").getFile().toString() + "\" >"
                    + "<br>Logout"
                    + "</center></html>";
    
    btnLogout.setText(text);
    

    如果你想要更多样式,可以使用我制作的this库。

    【讨论】:

    • 您可以使用单引号而不是转义双引号。
    • 如果资源嵌入到 Jar 文件中,则 URL 将不起作用
    • @MadProgrammer 是的。确实如此。他正在从资源中加载图像。所以这对他的问题有用。
    • 谢谢@Malinda。成功了
    • 1) 这可以使用现有方法来实现,详见副本。 2) getResource(..) 返回一个 URL,该 URL 已经以 file: 为前缀 3) 使用 HTML 呈现,禁用的按钮不会像普通按钮那样呈现。 4) 使用 HTML 渲染加载图标,我们失去了为未聚焦、聚焦、按下、悬停设置不同图标的默认能力。 5) @MadProgrammer “如果资源嵌入到一个 Jar 文件” 当然可以,请参阅this answer。您指的是file: 前缀吗?
    猜你喜欢
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多