7

JLabel次のように、右寄せのアイコンとテキストを使用してアイコンを右側に作成することは可能ですか?

ここに画像の説明を入力してください

私はこの質問を見ましたが、それは本当に最良のアプローチですか?

4

2 に答える 2

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;
    }
}
于 2012-08-19T16:14:13.287 に答える
6

引用された例では、右/左揃えにレイアウトとラベルのプロパティを使用しています。

さらに、レンダラーIconにインターフェイスを実装することを検討してください。ここで、およびは相対的なジオメトリを制御するために使用できます。これに関連して、原理を説明します。JList setHorizontalAlignment()setVerticalAlignment()TableCellRenderer

画像

于 2012-08-19T16:01:19.957 に答える