(JAVA)添加新组件时如何制作Scroll?

时间:2017-11-06 14:16:41

标签: java user-interface jscrollpane

如果我添加新组件,则滚动窗格不会更新。 我可以在不创建新的JScrollPane的情况下更新它吗?

 public void start(){
        getBox_Topics().setBorder(new TitledBorder(new EtchedBorder(),"Topics of vote"));
        add(new JScrollPane(getBox_Topics(),
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
        pack();
        setHandler(new ClientHandler_Thread(this));
        getHandler().start();
        setVisible(true);
    }

按钮在Box中添加新组件:

http://json2csharp.com/

1 个答案:

答案 0 :(得分:0)

Box / JPanel必须是固定大小。 或者它必须具有MaximumSize。

public void start(){
    getBox_Topics().setBorder(new TitledBorder(new EtchedBorder(),"Topics of vote"));
    setScrollPane(new JScrollPane(getBox_Topics()));
    add(getScrollPane());
    getScrollPane().setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    getBox_Topics().addContainerListener(new ContainerListener() {
        @Override
        public void componentAdded(ContainerEvent containerEvent) {
            getScrollPane().revalidate();
            getScrollPane().repaint();
        }

        @Override
        public void componentRemoved(ContainerEvent containerEvent) {

        }
    });
    pack();
    setHandler(new ClientHandler_Thread(this));
    getHandler().start();
    setVisible(true);
}