更改標籤側(簡單地套用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);
}
結果:
Ofcourse,你可以提高代碼並添加按照之前的標籤首選高度的邊界(從首選尺寸拍攝)在您的標籤創建週期中,每個都會運行。
我會放置正確的,請張貼和[SSCCE](http://sscce.org/),簡短,可運行,可編譯,只是'JFrame','JSlider'和硬編碼值' JSlider' – mKorbel 2013-02-11 08:56:41