CardLayout을 사용하여 Swing에서 뒤로/앞으로 버튼 구현
문제:
Swing에서, 사용자는 여러 섹션 사이를 탐색하기 위해 앞으로 및 뒤로 버튼을 구현하는 편리한 방법을 찾고 있습니다. GUI. 스택 시스템을 사용하여 이를 구현하려는 시도는 성공하지 못했으며 대체 솔루션을 모색하고 있습니다.
답변:
스택 시스템을 사용하는 대신 , CardLayout 사용을 고려해보세요. 이 레이아웃 관리자를 사용하면 간단한 명령으로 여러 패널 사이를 전환할 수 있으므로 앞으로/뒤로 탐색 시스템을 만드는 데 이상적입니다.
해결책:
다음 코드 스니펫은 CardLayout을 사용하여 앞으로 및 뒤로 버튼을 구현하는 방법을 보여줍니다.
import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.util.Random; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class CardPanel extends JPanel { private static final Random random = new Random(); private static final JPanel cards = new JPanel(new CardLayout()); private final String name; public CardPanel(String name) { this.name = name; this.setPreferredSize(new Dimension(320, 240)); this.setBackground(new Color(random.nextInt())); this.add(new JLabel(name)); } @Override public String toString() { return name; } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { create(); } }); } private static void create() { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for (int i = 1; i < 9; i++) { CardPanel p = new CardPanel("Panel " + String.valueOf(i)); cards.add(p, p.toString()); } JPanel control = new JPanel(); control.add(new JButton(new AbstractAction("\u22b2Prev") { @Override public void actionPerformed(ActionEvent e) { CardLayout cl = (CardLayout) cards.getLayout(); cl.previous(cards); } })); control.add(new JButton(new AbstractAction("Next\u22b3") { @Override public void actionPerformed(ActionEvent e) { CardLayout cl = (CardLayout) cards.getLayout(); cl.next(cards); } })); f.add(cards, BorderLayout.CENTER); f.add(control, BorderLayout.SOUTH); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } }
이 향상된 솔루션은 구현을 위한 더 깨끗하고 유연한 접근 방식을 제공합니다. Swing 애플리케이션의 앞으로/뒤로 버튼.
위 내용은 CardLayout을 사용하여 Swing GUI에서 뒤로 및 앞으로 버튼을 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!