尝试将2(JLabel,JSlider)添加到具有BorderLayout的面板中,仅绘制JSlider

时间:2017-04-08 19:53:41

标签: java swing

我已经从使用JFrame的项目中复制我的代码以显示文本字段和JSlider

我的新项目使用JInternalFrame,只绘制滑块。如果我注释掉代码它将绘制文本字段,看起来它只能绘制1个控件。

    JPanel containerPanel = new JPanel(new BorderLayout() );
    cDrawComponent mDrawComponent = new cDrawComponent();  
    containerPanel.add(mDrawComponent,BorderLayout.CENTER);
    JLabel mJLabel=new JLabel("000");
    mJSlider = new JSlider(JSlider.HORIZONTAL, 0, 1000,500);
    JPanel sliderPanel = new JPanel(new BorderLayout() );

//试图仅添加2个幻灯片         sliderPanel.add(mJLabel);         sliderPanel.add(mJSlider);         containerPanel.add(sliderPanel,BorderLayout.SOUTH);

    class SliderListener implements ChangeListener {
        public void stateChanged(ChangeEvent e) {
            JSlider source = (JSlider) e.getSource();
            ted++;
            if (!source.getValueIsAdjusting()) {
                {
                    sliderPes = (int) source.getValue();
                    int max=source.getMaximum();                
                    scrollPes=max-sliderPes;
                    repaint();
                }
            }
        }
    }
    mJSlider.addChangeListener(new SliderListener());
    add(containerPanel);

1 个答案:

答案 0 :(得分:0)

使用

sliderPanel.add(mJLabel, BorderLayout.WEST);

BorderLayout只能在中心显示一个组件(默认,如果省略)。这通常是最后一个,增加了。