1
JFrame의에 CardLayout을 사용하는 JPanel을 추가하려고 , 각 정렬 알고리즘에 대해 하나씩 구현해야합니다. 버튼을 클릭하면 배열의 그래픽 표현이 정렬 된 새 패널로 이동합니다 (이미 작은 애플릿에서이 작업을 수행했습니다).나는 당신이 볼 수있는 첫 번째 화면은 4 개 버튼을 포함하는 애플릿을 만들려고 노력하고</p> <p>빈 프레임을 얻을 실행할 때, 내가 실수를 발견 할 수
여기 내 코드는 다음과 같습니다.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class newCLayoutTest extends JPanel{
private JPanel holderPanel, mainPanel, bubblePanel, selectionPanel, mergePanel, quickPanel;
private JButton bubbleButton, selectionButton, mergeButton, quickButton;
private CardLayout cardLayout = new CardLayout();
public newCLayoutTest()
{
JLabel label = new JLabel("Label");
holderPanel = new JPanel();
mainPanel = new JPanel();
bubblePanel = new JPanel();
selectionPanel = new JPanel();
mergePanel = new JPanel();
quickPanel = new JPanel();
holderPanel.setLayout(cardLayout);
bubbleButton = new JButton();
selectionButton = new JButton();
mergeButton = new JButton();
quickButton = new JButton();
//mainPanel.setLayout(new GridLayout(2,2));
mainPanel.add(bubbleButton);
mainPanel.add(selectionButton);
mainPanel.add(mergeButton);
mainPanel.add(quickButton);
bubblePanel.add(label);
holderPanel.add(mainPanel, "1");
holderPanel.add(bubblePanel, "2");
cardLayout.show(holderPanel,"2");
}
}
그리고 cont 롤러 클래스 :
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class testControl extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
newCLayoutTest panel = new newCLayoutTest();
JFrame frame = new JFrame("LET THIS WORK");
// frame.setLayout(new BorderLayout());
frame.add(panel);
//frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setVisible(true);
}
});
}
}
예! 그게 효과가! add (holderPanel); 배치되다? – MichaelStoddart
패널이 인스턴스화 된 후에 나타나는 한 실제로는 없습니다. – Reimeus