ラベル側を変更する(単にRTLの向きを適用):
public static void main (String[] args)
{
try
{
UIManager.setLookAndFeel (new NimbusLookAndFeel());
}
catch (UnsupportedLookAndFeelException e)
{
e.printStackTrace();
}
JFrame frame = new JFrame();
JSlider slider = new JSlider (SwingConstants.VERTICAL);
slider.setPaintLabels (true);
slider.setComponentOrientation (ComponentOrientation.RIGHT_TO_LEFT);
Hashtable<Integer, JLabel> table = new Hashtable<Integer, JLabel>();
table.put (0, new JLabel ("May 2, 2000"));
table.put (25, new JLabel ("May 3, 2001"));
table.put (50, new JLabel ("May 4, 2002"));
table.put (75, new JLabel ("May 5, 2003"));
table.put (100, new JLabel ("May 6, 2004"));
slider.setLabelTable (table);
frame.add (slider);
frame.pack();
frame.setLocationRelativeTo (null);
frame.setVisible (true);
}
結果:
は、ラベルの配置を変更する必要があります変化することそれらを手動で これは、例えばこの方法を行うことができます。
結果
public static void main (String[] args)
{
try
{
UIManager.setLookAndFeel (new NimbusLookAndFeel());
}
catch (UnsupportedLookAndFeelException e)
{
e.printStackTrace();
}
JFrame frame = new JFrame();
frame.getRootPane().setBorder (BorderFactory.createEmptyBorder (5, 5, 5, 5));
JSlider slider = new JSlider (SwingConstants.HORIZONTAL);
slider.setPaintLabels (true);
Hashtable<Integer, JLabel> table = new Hashtable<Integer, JLabel>();
table.put (0, new JLabel ("May 2, 2000"));
JLabel l2 = new JLabel ("May 3, 2001");
l2.setBorder (BorderFactory.createEmptyBorder (20, 0, 0, 0));
table.put (25, l2);
table.put (50, new JLabel ("May 4, 2002"));
JLabel l3 = new JLabel ("May 5, 2003");
l3.setBorder (BorderFactory.createEmptyBorder (20, 0, 0, 0));
table.put (75, l3);
table.put (100, new JLabel ("May 6, 2004"));
slider.setLabelTable (table);
frame.add (slider);
frame.pack();
frame.setLocationRelativeTo (null);
frame.setVisible (true);
}
:
は勿論、あなたがそのコードを改善し、以前のラベル好ましい高さに応じて境界線を追加することができます(推奨サイズから撮影)あなたのラベル作成サイクルでもそれぞれが実行されます。
私はこれを正しくレイアウトしていますが、JSliderを使って 'JFrame'について' 'SSCCE(http://sscce.org/)、short、runnable、compilable、' ' JSlider' – mKorbel