public class ReadGameDetailsWindow extends JFrame implements ActionListener {
private GameFactory theFactory = GameFactory.getInstance();
private HashMap<String, Game> theListOfGames = theFactory.listOfGames();
JTable table;
// Delete game panel
JPanel deletePanel = new JPanel(new GridLayout(2,2));
JLabel theDeleteGameName = new JLabel("Game Name:");
JTextField theDeleteGameNameField = new JTextField();
JButton theDeleteCancelButton = new JButton("Clear");
JButton theDeleteOKButton = new JButton("Delete");
String[] columns = {"Name", "Developer", "Genre", "Rating"};
Object[][] tableData = new Object[theListOfGames.keySet().size()][4];
public void fillDetails() {
int index = 0;
for (String key : theListOfGames.keySet())
{
Game game = theListOfGames.get(key);
tableData[index][0] = game.getName();
tableData[index][1] = game.getDeveloper();
tableData[index][2] = game.getGenre();
tableData[index][3] = game.getOutOfTen() + "/10";
index++;
}
}
public ReadGameDetailsWindow() {
fillDetails();
deletePanel.add(theDeleteGameName);
deletePanel.add(theDeleteGameNameField);
deletePanel.add(theDeleteCancelButton);
deletePanel.add(theDeleteOKButton);
TitledBorder deleteBorder = BorderFactory.createTitledBorder("Delete Section");
table = new JTable(tableData, columns);
table.setPreferredScrollableViewportSize(new Dimension(500, 50));
JScrollPane scrollPane = new JScrollPane(table);
JPanel controls = new JPanel();
controls.setLayout(new GridLayout(1,3));
controls.add(deletePanel);
setLayout(new GridLayout(2,1));
getContentPane().add(scrollPane);
getContentPane().add(controls);
setVisible(true);
setSize(800,800);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(theDeleteOKButton)) {
try {
System.out.println("Delete Button Pressed");
String aGameName = theDeleteGameNameField.getText();
theFactory.deleteGame(aGameName);
fillDetails();
table.repaint();
JOptionPane.showMessageDialog(new JFrame(), aGameName + " has been deleted!");
} catch (Exception aException) {
aException.printStackTrace();
}
}
}
}
Итак, по сути, ничего не происходит, когда я нажимаю на кнопку «УдалитьOK».Я пытаюсь удалить запись из моего HashMap, из которой отображается информация.
Я пытался создавать и создавать экземпляры кнопок внутри и снаружи главного конструктора и пытался добавить actionListeners по отдельности, но я не могуКажется, что реакция вообще не получается.
Нужно ли перемещать кнопки или есть другой способ, которого мне не хватает?Извините, я довольно новичок в Swing и просто пытаюсь заставить его работать.