(JAVA) 添加新组件时如何制作Scroll?
(JAVA) How to make Scroll, when adding new componet?
如果我添加一个新组件,滚动窗格不会更新。
我可以在不创建新的 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 中添加新组件:
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);
}
如果我添加一个新组件,滚动窗格不会更新。 我可以在不创建新的 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 中添加新组件:
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);
}