0

我正在编写一个小型应用程序并且遇到了很大的问题。我被困在为什么 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);


        }    
}

提前感谢您提供的任何帮助,非常感谢!

4

1 回答 1

2

您的水平间隙FlowLayout是如此之大,以至于它将组件“推”JSlider出框架的可绘制区域。减少它会使它再次出现。还建议避免使用幻数(1 = FlowLayout.CENTER):

panel.setLayout(new FlowLayout(FlowLayout.CENTER, 50, 500));
于 2013-04-09T14:35:51.063 回答