簡體   English   中英

JLabel右對齊圖標和文字

[英]JLabel Right-Justified Icon and Text

是否可以使用右對齊圖標和文本創建JLabel ,圖標位於右側,如下所示:

在此輸入圖像描述

我已經看到了這個問題,但它真的是最好的方法嗎?

也許這會更符合您的需求? 它應該對齊面板右側的所有內容(比您正在查看的示例更多):

代碼截圖

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

public class TempProject
{
    public static void main(String args[])
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                Box mainContent = Box.createVerticalBox();
                mainContent.add(TempProject.getLabel("abc"));
                mainContent.add(TempProject.getLabel("Longer"));
                mainContent.add(TempProject.getLabel("Longerest"));
                mainContent.add(TempProject.getLabel("Smaller"));

                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                frame.setContentPane(mainContent);    
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public static JLabel getLabel(String text){
        JLabel c = new JLabel(text);
        c.setHorizontalTextPosition(SwingConstants.LEADING);
        c.setAlignmentX(SwingConstants.RIGHT);
        c.setIcon(UIManager.getIcon("FileChooser.detailsViewIcon"));
        return c;
    }
}

引用示例使用布局和標簽屬性進行右/左對齊。

另外,考慮在JList 渲染器中實現Icon接口,其中setHorizontalAlignment()setVerticalAlignment()可用於控制相對幾何。 這個相關的TableCellRenderer說明了這個原理。

圖片

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM