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;
}
}
引用された例では、右/左揃えにレイアウトとラベルのプロパティを使用しています。
さらに、レンダラーIcon
にインターフェイスを実装することを検討してください。ここで、およびは相対的なジオメトリを制御するために使用できます。これに関連して、原理を説明します。JList
setHorizontalAlignment()
setVerticalAlignment()
TableCellRenderer