inputWidget 및 outputWidget에 모두 양식이 저장되어 있습니다. addInput 및 addOutput 버튼은 secondaryInOutPanel에 두 개의 다른 양식을 표시합니다.스윙 UI 지연 요소 추가 및 제거
그러나 단추를 클릭하여 양식 사이를 이동할 때 상당한 지연이 있습니다. 실제로 양식을 클릭하려고하면 변경됩니다. 그리고 여전히 이전 형태의 일부 보이는 그림이 있습니다.
SwingUtilities를 사용해 보았지만 지연이 최악의 원인이되었습니다.
secondaryInOutPanel = new JPanel(new BorderLayout());
secondaryInOutPanel.setMinimumSize(new Dimension(200,400));
JPanel btnPanel = new JPanel();
outinPanel.add(btnPanel, BorderLayout.NORTH);
JButton addInput = new JButton("Add Input");
btnPanel.add(addInput);
addInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
secondaryInOutPanel.removeAll();
secondaryInOutPanel.add(inputWidget, BorderLayout.NORTH);
JButton addBtn = new JButton("Save Input");
secondaryInOutPanel.add(addBtn, BorderLayout.SOUTH);
addBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
});
}
});
JButton addOutput = new JButton("Add Output");
btnPanel.add(addOutput);
addOutput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
secondaryInOutPanel.removeAll();
secondaryInOutPanel.add(outputWidget, BorderLayout.NORTH);
JButton addBtn = new JButton("Save Output");
secondaryInOutPanel.add(addBtn, BorderLayout.SOUTH);
addBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
});
}
});
CardLayout을 위에서 설명한 재 페인트 방법과 비교하여 사용하면 어떤 점이 유리합니까? – kyleED
이미 레이아웃은 패널을 교체하는 모든 작업을 수행하며 패널은 모든 패널의 크기에 따라 크기가 정해집니다. – camickr