我完全按照演示程序在教程中显示的那样操作,但是我的滑块刻度的颜色没有显示。
不知道是不是因为我用的是MacBook,因为演示者用的是windows。 不确定这是我的代码还是操作系统的问题,有人可以帮忙吗?:
import javax.swing.*;
import java.awt.*;
public class SliderDemo {
JFrame frame;
JPanel panel;
JLabel label;
JSlider slider;
SliderDemo(){
frame = new JFrame("Slider Demo");
panel = new JPanel();
label = new JLabel();
slider = new JSlider(0,100,50);
slider.setPreferredSize(new Dimension(400, 200));
slider.setPaintTicks(true);
panel.add(slider);
panel.add(label);
frame.add(panel);
frame.setSize(420,420);
frame.setVisible(true);
}
}
根据如何使用滑块中的示例,您还需要包括
JSlider#setMajorTickSpacing
和/或JSlider#setMinorTickSpacing
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
public class Main {
public static void main(String[] args) {
new Main();
}
public Main() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.add(new TestPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class TestPane extends JPanel {
public TestPane() {
JSlider slider = new JSlider(0, 100, 50);
slider.setPaintTicks(true);
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(5);
setLayout(new BorderLayout());
add(slider);
}
}
}
我不是在谈论滴答声之类的东西,它是我的案例中缺少的滑翔机上显示的“颜色”,而它显示在 Windows 操作系统中
不同的操作系统,不同的外观和感觉。默认情况下,MacOS 会像 Windows 一样使用系统外观,我们会做它想做的事。
Soo.. 如果我添加
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
在创建框架之前我得到...
但是...作为用户,我希望您不要这样做,而是利用系统的外观和感觉。
有关详细信息,请参阅如何设置外观