JTable: zjednodušení.
1 package cz.frantovo.rozsireneAtributy.gui;
3 import cz.frantovo.rozsireneAtributy.Atribut;
4 import java.io.IOException;
5 import java.util.ResourceBundle;
6 import java.util.logging.Level;
7 import java.util.logging.Logger;
8 import javax.swing.JOptionPane;
9 import javax.swing.JTable;
10 import javax.swing.ListSelectionModel;
11 import javax.swing.event.ListSelectionEvent;
12 import javax.swing.event.ListSelectionListener;
18 public class Panel extends javax.swing.JPanel {
20 private static final Logger log = Logger.getLogger(Panel.class.getSimpleName());
21 private static final ResourceBundle překlady = ResourceBundle.getBundle("cz.frantovo.rozsireneAtributy.Překlady");
23 private Atribut vybranýAtribut;
24 private JTable tabulka;
26 public Panel(Model model) {
30 tabulka = new JTable(model);
31 tabulka.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
32 posuvnýPanel.setViewportView(tabulka);
34 /** Výběr aktuálního atributu v tabulce */
35 tabulka.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
37 public void valueChanged(ListSelectionEvent e) {
38 int řádek = tabulka.getSelectedRow();
40 vybranýAtribut = null;
41 tlačítkoSmazat.setEnabled(false);
43 vybranýAtribut = getModel().getAtribut(řádek);
44 tlačítkoSmazat.setEnabled(true);
50 private Model getModel() {
54 private void zobrazChybovouHlášku(String hláška, Throwable chyba) {
55 JOptionPane.showMessageDialog(this, hláška, překlady.getString("chyba"), JOptionPane.ERROR_MESSAGE);
56 log.log(Level.WARNING, hláška, chyba);
59 @SuppressWarnings("unchecked")
60 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
61 private void initComponents() {
63 posuvnýPanel = new javax.swing.JScrollPane();
64 tlačítkoPřidat = new javax.swing.JButton();
65 tlačítkoSmazat = new javax.swing.JButton();
66 tlačítkoZnovuNačíst = new javax.swing.JButton();
68 tlačítkoPřidat.setMnemonic('p');
69 java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("cz/frantovo/rozsireneAtributy/Překlady"); // NOI18N
70 tlačítkoPřidat.setText(bundle.getString("přidatAtribut")); // NOI18N
71 tlačítkoPřidat.addActionListener(new java.awt.event.ActionListener() {
72 public void actionPerformed(java.awt.event.ActionEvent evt) {
73 tlačítkoPřidatActionPerformed(evt);
77 tlačítkoSmazat.setMnemonic('s');
78 tlačítkoSmazat.setText(bundle.getString("smazatAtribut")); // NOI18N
79 tlačítkoSmazat.setEnabled(false);
80 tlačítkoSmazat.addActionListener(new java.awt.event.ActionListener() {
81 public void actionPerformed(java.awt.event.ActionEvent evt) {
82 tlačítkoSmazatActionPerformed(evt);
86 tlačítkoZnovuNačíst.setMnemonic('z');
87 tlačítkoZnovuNačíst.setText(bundle.getString("znovuNačíst")); // NOI18N
88 tlačítkoZnovuNačíst.addActionListener(new java.awt.event.ActionListener() {
89 public void actionPerformed(java.awt.event.ActionEvent evt) {
90 tlačítkoZnovuNačístActionPerformed(evt);
94 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
95 this.setLayout(layout);
96 layout.setHorizontalGroup(
97 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
98 .addGroup(layout.createSequentialGroup()
100 .addComponent(tlačítkoPřidat)
101 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
102 .addComponent(tlačítkoSmazat)
103 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
104 .addComponent(tlačítkoZnovuNačíst)
105 .addContainerGap(186, Short.MAX_VALUE))
106 .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE)
108 layout.setVerticalGroup(
109 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
110 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
111 .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE)
112 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
113 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
114 .addComponent(tlačítkoPřidat)
115 .addComponent(tlačítkoSmazat)
116 .addComponent(tlačítkoZnovuNačíst))
119 }// </editor-fold>//GEN-END:initComponents
121 private void tlačítkoPřidatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoPřidatActionPerformed
122 model.přidejAtribut(new Atribut());
123 }//GEN-LAST:event_tlačítkoPřidatActionPerformed
125 private void tlačítkoSmazatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoSmazatActionPerformed
127 model.odeberAtribut(vybranýAtribut);
128 } catch (IOException e) {
129 zobrazChybovouHlášku(překlady.getString("chyba.nepodařiloSeSmazat"), e);
131 }//GEN-LAST:event_tlačítkoSmazatActionPerformed
133 private void tlačítkoZnovuNačístActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoZnovuNačístActionPerformed
135 model.načtiAtributy();
136 } catch (IOException e) {
137 zobrazChybovouHlášku(překlady.getString("chyba.nepodařiloSeNačíst"), e);
139 }//GEN-LAST:event_tlačítkoZnovuNačístActionPerformed
140 // Variables declaration - do not modify//GEN-BEGIN:variables
141 private javax.swing.JScrollPane posuvnýPanel;
142 private javax.swing.JButton tlačítkoPřidat;
143 private javax.swing.JButton tlačítkoSmazat;
144 private javax.swing.JButton tlačítkoZnovuNačíst;
145 // End of variables declaration//GEN-END:variables