2
북부 패널에 JSlider
이 하나만있는 매우 단순한 JFrame
입니다. JSlider를 다음과 같은 방법으로 최소 크기로 표시하고 싶습니다.JSlider가 최소 크기로 표시되지 않습니다
slider.putClientProperty("JComponent.sizeVariant", "mini");
그러나 여전히 정상적인 크기로 표시됩니다. 트릭을 따르는 것도 효과가 없습니다.
SwingUtilities.updateComponentTreeUI(this);
다음은 전체 프로그램입니다.
import java.awt.*;
import javax.swing.*;
public class TestSliderSize extends JFrame {
public TestSliderSize() {
setLookNFeel();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(screenSize.width/2, screenSize.height/2);
JSlider slider = new JSlider(SwingConstants.HORIZONTAL, 0, 50, 10);
slider.putClientProperty("JComponent.sizeVariant", "mini");
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(1);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
//SwingUtilities.updateComponentTreeUI(this);
getContentPane().setLayout(new BorderLayout());
JPanel centerPanel = new JPanel(new BorderLayout());
JPanel northPanel = new JPanel(new FlowLayout());
Dimension d1 = centerPanel.getSize();
northPanel.setPreferredSize(new Dimension(screenSize.width/2, 100));
northPanel.add(slider);
northPanel.setBackground(Color.BLACK);
centerPanel.add(northPanel, BorderLayout.NORTH);
JPanel innerPanel = new JPanel();
innerPanel.setBackground(Color.ORANGE);
centerPanel.add(innerPanel, BorderLayout.CENTER);
SwingUtilities.updateComponentTreeUI(this);
getContentPane().add(centerPanel, BorderLayout.CENTER);
this.setVisible(true);
}
public static void main(String[] args) {
new TestSliderSize();
}
private void setLookNFeel() {
try { // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e1) {
}
}
}
이제 최소 크기로 슬라이더를 배치하는 데 도움이 필요합니다.
기본적인 크기와 최소 크기의 차이는 무엇입니까? 나는 네가 기대하는 것을 얻지 못한다. 최소 크기는 일반적인 크기이며, 선호하는 크기인데 코드에서 발생하는 것입니다 –
그리고 질문 제목이 JScrollPane을 말하는 이유는 무엇입니까? 귀하의 설명이나 귀하의 코드에서 JScrollPane에 대한 언급이 보이지 않습니다. –
그것은 그것을 정정 한 실수였습니다. – user3741146