JLabel右对齐图标和文字

Edw*_*its 7 java icons swing jlabel

是否可以JLabel使用右对齐图标和文本创建,图标位于右侧,如下所示:

在此输入图像描述

我已经看到了这个问题,但它真的是最好的方法吗?

Nic*_*ppe 9

也许这会更符合您的需求?它应该对齐面板右侧的所有内容(比您正在查看的示例更多):

代码截图

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;
    }
}
Run Code Online (Sandbox Code Playgroud)


tra*_*god 6

引用示例使用布局和标签属性进行右/左对齐.

另外,考虑IconJList 渲染器中实现接口,其中setHorizontalAlignment()setVerticalAlignment()可用于控制相对几何.这相关TableCellRenderer说明了原理.

图片http://i43.tinypic.com/9h82hi.png