2013-10-17 134 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。您需要一個創建賬戶,借書,返還書籍等的面板。甲骨文網站上的Java教程可以很好地指導您完成這一過程,但他們使用Combobox而不是像您這樣的列表。

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

在你的情況,你可能想要把卡布局在邊框式佈局的中心面板。然後使用您的列表作爲觸發器來更改顯示哪個卡。如果您需要關於如何檢測用戶何時在列表中選擇某些內容的幫助,請參閱Oracle的JList教程。

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