基本上,我的項目是創建一個簡單的庫系統,其中任何給定的用戶一次最多可以有三本書。我使用BreezySwing(因爲我需要)並使用JList列出當前取出的書籍。使用新輸入更新JList
要返回圖書,用戶點擊圖書返回列表中,然後單擊「返回」按鈕。但是,我無法弄清楚如何讓JList正常工作。
如何將新信息添加到列表中?
這裏是我到目前爲止的代碼:
import java.util.*;
import javax.swing.*;
import BreezySwing.*;
public class ClientGUI extends GBFrame {
private JButton returnBook, takeOutBook;
private JLabel title, author;
private JTextField titleInput, authorInput;
private int bookCount = 0;
DefaultListModel books = new DefaultListModel();
private JList booksOut = new JList(books);
public ClientGUI(){
title = addLabel("Title: ",1,1,1,1);
author = addLabel("Author: ",2,1,1,1);
titleInput = addTextField("",1,2,2,1);
authorInput = addTextField("",2,2,2,1);
returnBook = addButton("Return",3,1,1,1);
takeOutBook = addButton("Take Out",3,2,1,1);
booksOut = addList(4,1,2,1);
returnBook.setEnabled(false);
books.addElement("Book - Author");
}
public void buttonClicked(JButton buttonObj){
if(buttonObj == takeOutBook){
if(bookCount < 3){
String titleAdd = titleInput.getText();
String authorAdd = authorInput.getText();
books.addElement(titleAdd + "By: " + authorAdd);
bookCount++;
if(bookCount == 0){
takeOutBook.setEnabled(true);
returnBook.setEnabled(false);
} else if(bookCount == 3){
takeOutBook.setEnabled(false);
returnBook.setEnabled(true);
} else {
takeOutBook.setEnabled(true);
returnBook.setEnabled(true);
}
} else if(bookCount == 3){
JOptionPane.showMessageDialog(null, "Please return a book first", "Invalid Choice", JOptionPane.INFORMATION_MESSAGE);
}
} else if(buttonObj == returnBook){
//int n = (Integer) books.getSelectedValue();
//books.remove(n);
bookCount--;
if(bookCount == 0){
takeOutBook.setEnabled(true);
returnBook.setEnabled(false);
} else if(bookCount == 3){
takeOutBook.setEnabled(false);
returnBook.setEnabled(true);
} else {
takeOutBook.setEnabled(true);
returnBook.setEnabled(true);
}
}
}
public static void main(String args[]){
ClientGUI GUI = new ClientGUI();
GUI.setSize(300,275);
GUI.setTitle("Library");
GUI.setVisible(true);
}
}
基本上,我需要做的就是讓JList的正常工作。剩下的我可以完成。謝謝。
*「與BreezySwing一起做」*唯一確定的方法它不是該API的錯誤,是準備一個純J2SE的SSCCE。 –