我正在编写一个小应用程序并遇到了很大的问题。我坚持为什么JSlider不允许我将它添加到JPanel。 当最后一行代码为:
“添加(滑块);”
JSlider涵盖了整个JPanel。这是正确的,我需要以某种方式调整我的JSlider的大小吗?或者,我是否犯了代码错误,并没有让Jslider在Jpanel中可见?
这是我的代码:
package atmosfile;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JSlider;
import java.awt.*;
public class Main extends JFrame {
private static final long serialVersionUID = 1L;
public Main() {
super("Package Choice");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(1, 100, 500));
panel.add(new JButton("Package 1"));
panel.add(new JButton("Package 2"));
panel.add(new JButton("Package 3"));
add(panel);
JSlider slider = new JSlider();
slider.setLayout(new FlowLayout(1, 100, 200));
slider.setMajorTickSpacing(5);
slider.setPaintTicks(true);
slider.setSize(200, 200);
slider.setVisible(true);
panel.add(slider);
}
}
提前感谢您的帮助,非常感谢!
答案 0 :(得分:2)
FlowLayout
的水平间距太大,无法将JSlider
组件“推出”框架的可绘制区域。减少它会再次进入视野。还建议避免使用幻数(1 = FlowLayout.CENTER
):
panel.setLayout(new FlowLayout(FlowLayout.CENTER, 50, 500));