개체 (패널) 자체에서 JButton
의 이벤트 트리거를 사용하는 여러 JPanel
클래스 간의 탐색을 코딩하는 방법을 알려줄 사람이 있습니까? 나는 CardLayout
에 대해 읽었습니다. 상위 패널에서 발생한 이벤트에서 패널을 바꿀 수 있습니다. 내가 원하는 것은 패널에 포함 된 버튼을 클릭하면 사라 지거나 원하는 패널이 표시되어야합니다. 해결책을 찾지 못하는 것 같습니다.여러 패널 간 이동
답변
을 전환하는 JButton을 사용하는 대신 JMenu with JMenuItems를 사용할 수 있습니다.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Testing extends JFrame {
private JPanel cardHolder;
private CardLayout cards;
private static final String cardA = "A";
private static final String cardB = "B";
private class Switcher implements ActionListener{
String card;
Switcher(String card) { this.card = card; }
@Override
public void actionPerformed(ActionEvent e) {
cards.show(cardHolder, card);
}
}
private void run() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel pa = new JPanel();
JButton ba = new JButton("Switch to B");
ba.addActionListener(new Switcher(cardB));
pa.add(ba);
pa.setBackground(Color.CYAN);
JPanel pb = new JPanel();
JButton bb = new JButton("Switch to A");
bb.addActionListener(new Switcher(cardA));
pb.add(bb);
pb.setBackground(Color.MAGENTA);
cardHolder = new JPanel();
cards = new CardLayout();
cardHolder.setLayout(cards);
cardHolder.add(pa, cardA);
cardHolder.add(pb, cardB);
add(cardHolder);
pack();
setVisible(true);
}
public static void main(String[] args) {
try {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
new testing().run();
}
});
} catch (Exception ex) { }
}
}
+1하지만 1) 결코 JFrame/JDialog/JWindow를 확장하지 마십시오. 2) Java 명명 규칙을 올바르게 사용하면 클래스 이름'testing'이 'Testing'이어야합니다. – mKorbel
Gene, 감사합니다. 내 오류 패널을 숨기거나 표시하는 panel.setVisible(), revalidate() 및 repaint() 메서드를 사용하려고했습니다. 죄송합니다. 코드를 게시하지 않았기 때문에 많은 일을하지 않을 것이라고 생각했습니다. 고마워. StackOverFlow를 처음 접했을 때 어디에서나 솔루션을 +1 할 수 있습니다. – CodeThag
* "솔루션을 +1 할 수있는 곳은 어디에도 있습니다."* 충분한 담당자가있을 때까지는 아닙니다. 전철기. 답변을 수락하는 것은 (항상 그렇듯이) 항상 답변 만족도를 나타내는 좋은 방법입니다. –
당신은 카드 내 아이의 행동에서 카드를 전환 방지 CardLayout에 대해 아무것도 없다 betweens 카드를
- 1. 스칼라에서 패널 간 이동
- 2. GWT 모듈 간 이동
- 3. HTML 윈도우 간 이동
- 4. cocos2d 장면 간 이동
- 5. android에서 활동 간 이동
- 6. TabHost의 탭 간 이동
- 7. 데이터베이스 간 정보 이동
- 8. 대기열 간 메시지 이동
- 9. iOS :보기 간 이동
- 10. 폴더 간 파일 이동
- 11. 아이폰의 여러보기 간 이동
- 12. WPF에서 화면 간 이동
- 13. flex에서보기 간 이동
- 14. windows.form C# 양식 간 이동
- 15. 리치 모달 패널 이동 방법
- 16. 가시성 변경 후 패널 이동
- 17. 하이퍼 링크를 사용하여보기 간 이동
- 18. 서버 간 TFS 템플릿 이동
- 19. 컴퓨터 간 이동 Git 프로젝트
- 20. UITableViewCell 내의 UITextField 간 이동
- 21. 목록 2 목록 간 이동
- 22. 버튼 추가 및보기 간 이동
- 23. 좌표 간 이동, Java 알고리즘
- 24. uitableview의 텍스트 필드 간 이동
- 25. Winforms의 페이지 간 이동 에뮬레이션
- 26. VB6의 라디오 단추 간 이동
- 27. 뷰와 뷰 모델 간 이동
- 28. GWT 패널 간 마우스 이벤트 전달
- 29. 내비게이션 패널 (페이지 간 캐시) 켜기/끄기
- 30. 콘텐츠 스크립트와 패널 간 통신 방법
* "누군가가 말해 줄 수 ..."우리가 할 수있는,하지만 * 물론 [당신이 * 시도 * 무슨?] (http://www.whathaveyoutried.com/) 내 말은 * 게다가 * 요청 무작위 낯선 사람 당신을 위해 그것을 할 인터넷에. –
정확합니다. CardLayout이 이것을 할 수 있습니다. 이제 코드를 작성하고 어떤 일이 발생하는지 확인해보십시오. * 그런 다음 * 막히면 뒤로 와서 코드를 보여 주시고 어떻게 또는 왜 작동하지 않는지 알려주십시오. * 해결책을 찾지 말고 해결책을 쓰도록 노력하십시오. 노력으로 더 많은 것을 배우고 나를 신뢰하십시오. –