Я программирую небольшое приложение и сталкиваюсь с большим ударом. Я застрял на том, почему JSlider не позволит мне добавить его в JPanel. При использовании последней строки кода:Как мне разрешить мой 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);
}
}
Заранее спасибо за любую помощь его наиболее ценится!
+1, особенно для части магического номера. Почему кто-нибудь даже смотрит на исходный код, чтобы узнать, что такое волшебное число для CENTER? – camickr
Спасибо за ваш ответ. Я изменил магическое число и поместил JSliders в рамки, хотя это, похоже, не работает. Размер не меняется даже при изменении номеров. Может быть, это потому, что я положил: slider.setSize (80, 200); а не setPreferredSize? Извините, если какие-либо ошибки кажутся очевидными, я все еще новичок в этом. – JEP
Если вы не видите никаких изменений, попробуйте очистить свой проект. Также 'setSize' не будет влиять на размер' JSlider'. Вам нужно будет переопределить 'getPreferredSize' для компонента. – Reimeus