我有一个 jtable 保存书籍文件记录并显示它们。
我创建了一个“借用”按钮,当单击未借用的行时,该行的“借用状态”应更改为“是”。
我使用这个代码,但没有改变!
public class user_AllBooks extends AbstractTableModel{
BookInformation book_info=new BookInformation();
String[] columns=new String[]{"Book Name","Book Date", "Book ID","Borrow Status"};
ArrayList<BookInformation> bData=new ArrayList<BookInformation>();
public user_AllBooks(){
try{
BufferedReader br=new BufferedReader(new FileReader("AllBookRecords.txt"));
String line;
while((line = br.readLine()) != null){
bData.add(initializeBookData(line));
}
br.close();
}
catch(IOException ioe){
}
}
public BookInformation initializeBookData(String myline){
BookInformation book_infos=new BookInformation();
String[] celledLine=myline.split(" ");
book_infos.setBookName(celledLine[0]);
book_infos.setBookDate(celledLine[1]);
book_infos.setBookID(celledLine[2]);
book_infos.setBorrowStatus(celledLine[3]);
return book_infos;
}
@Override
public String getColumnName(int col){
return columns[col];
}
@Override
public int getRowCount() {
if(bData != null){
return bData.size();
}
else{
return 0;
}
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
BookInformation bookInf=bData.get(rowIndex);
Object value;
switch(columnIndex){
case 0:
value=bookInf.getBookName();
break;
case 1:
value=bookInf.getBookDate();
break;
case 2:
value=bookInf.getBookID();
break;
case 3:
value=bookInf.getBorrowStatus();
break;
default :
value="...";
}
return value;
}
}
二等:
public class user_AllBooksM extends JFrame implements ActionListener{
user_AllBooks uAllBooks=new user_AllBooks();
final JTable bTable=new JTable(uAllBooks);
JButton borrowButton;
public user_AllBooksM(){
setTitle("All Books");
exitButton=new JButton("Exit");
borrowButton=new JButton("Borrow");
borrowButton.addActionListener(this);
JPanel Bpanel=new JPanel();
Bpanel.setLayout(new FlowLayout());
JScrollPane sp=new JScrollPane(bTable);
Bpanel.add(sp);
Bpanel.add(borrowButton);
this.add(Bpanel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(300, 60, 550, 550);
this.setResizable(false);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent event) {
borrowInitialize(bTable.getSelectedRow());
}
public void borrowInitialize(int row){
if(uAllBooks.getValueAt(row, 3).equals("yes")) {
JOptionPane.showMessageDialog(null, "This Book Was Borrowed");
}
else{
uAllBooks.setValueAt("Yes", row, 3);
uAllBooks.fireTableRowsUpdated(row, row);
}
}
public static void main(String[] args){
new user_AllBooksM();
}
}
谢谢。