2013-10-17 2 views
0

저는 Java GUI의 초보자입니다.Java GUI JList 응용 프로그램

사용자가 이미 정의 된 목록에서 항목을 선택하고 해당 항목과 관련된 패널이 목록의 오른쪽에 나타나는 JList로 사용자 인터페이스를 작성하려고합니다. 그것이 나의 목표입니다. 하지만, 내가 먼저 달성하고자하는 것은 특정 메뉴 항목이 선택되었을 때 특정 패널을 표시 할 수있게하는 것입니다. . .

이것은 내가 지금까지 해 온 것입니다. . .

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Font; 

import javax.swing.JFrame; 
import javax.swing.JList; 
import javax.swing.JPanel; 
import javax.swing.ListSelectionModel; 

public class MainGUI extends JFrame{ 

    JList list = new JList(
      new String[]{"Create Account","Borrow Book","Return Book", 
       "Add Book","Delete Book","Display Details"} 
    ); 

    public MainGUI() 
    { 
     JPanel panel = new JPanel(); 
     JPanel panel1 = new JPanel(); 
     list.setForeground(Color.RED); 
     list.setBackground(Color.WHITE); 
     list.setSelectionForeground(Color.GREEN); 
     list.setSelectionBackground(Color.LIGHT_GRAY); 
     list.setFixedCellWidth(150); 
     list.setFixedCellHeight(50); 
     list.setFont(new Font("Serif",Font.BOLD,16)); 
     list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     panel.add(list); 
     add(panel,BorderLayout.WEST); 
    } 

    public static void main(String[] args) { 
     MainGUI frame = new MainGUI();   
     frame.setSize(500, 350); 
     frame.setLocationRelativeTo(null); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    }  
} 

답변

2

찾고있는 것을 "카드 레이아웃"이라고합니다. 카드 레이아웃은 최상위 사용자를 향한 카드를 갑판의 다른 카드로 바꿀 수있는 카드 갑판과 같습니다. 데크의 각 카드는 다양한 GUI가 포함 된 또 다른 JPanel입니다. 계정 생성, 책 차용, 서적 반납 등을위한 패널이 필요합니다. Oracle 웹 사이트의 Java 자습서는 프로세스를 상당히 잘 설명하지만 사용자 대신 목록 대신 Combobox를 사용합니다. 귀하의 경우에는

http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

, 당신은 아마 당신의 테두리 레이아웃의 중앙 패널의 카드 레이아웃을 넣고 싶다. 그런 다음 목록을 트리거로 사용하여 표시된 카드를 변경하십시오. 사용자가 목록에서 항목을 선택할 때 감지하는 방법에 대한 도움이 필요하면 Oracle의 JList 자습서를 참조하십시오.

http://docs.oracle.com/javase/tutorial/uiswing/components/list.html