| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 04.03.08 Prihlásený: 12.03.15 Príspevky: 68 Témy: 27 |
Ahojte , mam taký problém, neviem s tým pohnuť . mam 3 table kt. su potomkami abstracttablemodel v nich sa udaje ukladaju do arraylistu cez combobox ich prepinam a tym sa mi meni obsah tabulky jTable. vsetko funguje ale ked si pridam jTextField a pridam mu funkciu na filtrovanie jTable , vypise toto Kód: Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 5, Size: 5 at java.util.ArrayList.rangeCheck(ArrayList.java:604) at java.util.ArrayList.get(ArrayList.java:382) at semestralka2.MojTableModel.getValueAt(MojTableModel.java:35) at javax.swing.JTable.getValueAt(JTable.java:2716) at javax.swing.JTable.prepareRenderer(JTable.java:5714) at javax.swing.plaf.synth.SynthTableUI.paintCell(SynthTableUI.java:684) at javax.swing.plaf.synth.SynthTableUI.paintCells(SynthTableUI.java:581) at javax.swing.plaf.synth.SynthTableUI.paint(SynthTableUI.java:365) at javax.swing.plaf.synth.SynthTableUI.update(SynthTableUI.java:276) at javax.swing.JComponent.paintComponent(JComponent.java:778) at javax.swing.JComponent.paint(JComponent.java:1054) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1508) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1439) at javax.swing.RepaintManager.paint(RepaintManager.java:1236) at javax.swing.JComponent._paintImmediately(JComponent.java:5169) at javax.swing.JComponent.paintImmediately(JComponent.java:4980) at javax.swing.RepaintManager$3.run(RepaintManager.java:796) at javax.swing.RepaintManager$3.run(RepaintManager.java:784) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706) at javax.swing.RepaintManager.access$1000(RepaintManager.java:62) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1647) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) toto je MojTable ModelKód: package semestralka2; import java.util.ArrayList; import javax.swing.table.AbstractTableModel;
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author dusan */ public class MojTableModel extends AbstractTableModel {
private String Stlpce[] = {"Meno", "Priezvisko", "Email", "Rodné číslo", "Adresa", "Psč", "Mesto", "Tel.č. účastník", "Tel.č. rodič", "Poznámka"}; private ArrayList<Ucastnik> uc = new DataUcastnikov().dajUcastnikovURL();
@Override public int getRowCount() { return uc.size(); }
@Override public int getColumnCount() { return Stlpce.length; }
@Override public Object getValueAt(int rowIndex, int columnIndex) {
Ucastnik u = uc.get(rowIndex);
switch (columnIndex) { case 0: return u.getMeno(); case 1: return u.getPriezvisko(); case 2: return u.getEmail(); case 3: return u.getRc(); case 4: return u.getAdresa(); case 5: return u.getPsc(); case 6: return u.getMesto(); case 7: return u.getTcuc(); case 8: return u.getTcrod(); case 9: return u.getPoznamka(); default: throw new UnsupportedOperationException("not"); } }
@Override public String getColumnName(int col) { return Stlpce[col]; }
public void addUcastnik(Ucastnik u){ uc.add(u); fireTableDataChanged(); } }
toto je Okno GUIKód: /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package semestralka2;
import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.RowFilter; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter;
/** * * @author dusan */ public class Okno extends javax.swing.JFrame {
/** * Creates new form Okno */
public Okno() { initComponents(); jTable1.setModel(new MojTableModel()); jTable1.getColumnModel().getColumn(0).setPreferredWidth(45); jTable1.getColumnModel().getColumn(1).setPreferredWidth(45); jTable1.getColumnModel().getColumn(2).setPreferredWidth(120); // final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(jTable1.getModel()); // jTable1.setRowSorter(sorter); }
/** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jButton1 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jComboBox1 = new javax.swing.JComboBox(); jTextField1 = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Účastníci KECY 2014");
jPanel1.setBackground(new java.awt.Color(29, 150, 229));
jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); jTable1.setSurrendersFocusOnKeystroke(true); jScrollPane1.setViewportView(jTable1);
jButton1.setText("Pridaj účastníka"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } });
jButton3.setText("Export do excelu");
jButton2.setText("Vymaž účastníka"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } });
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Web", "Súbor", "Web + súbor" })); jComboBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jComboBox1ActionPerformed(evt); } });
jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } });
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/semestralka2/a.png"))); // NOI18N
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addContainerGap(85, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jButton1) .addGap(18, 18, 18) .addComponent(jButton2) .addGap(18, 18, 18) .addComponent(jButton3)) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1114, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(59, 59, 59)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(106, 106, 106) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 193, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(33, 33, 33) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton1) .addComponent(jButton2) .addComponent(jButton3)) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(2, 2, 2) .addComponent(jLabel1)) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(48, Short.MAX_VALUE)) );
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) );
jPanel1.getAccessibleContext().setAccessibleName("");
pack(); }// </editor-fold>
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) { if (jComboBox1.getSelectedItem().equals("Web")) { jTable1.setModel(new MojTableModel()); jTable1.getColumnModel().getColumn(0).setPreferredWidth(45); jTable1.getColumnModel().getColumn(1).setPreferredWidth(45); jTable1.getColumnModel().getColumn(2).setPreferredWidth(120); }
if (jComboBox1.getSelectedItem().equals("Súbor")) { jTable1.setModel(new MojTableModel2()); jTable1.getColumnModel().getColumn(0).setPreferredWidth(45); jTable1.getColumnModel().getColumn(1).setPreferredWidth(45); jTable1.getColumnModel().getColumn(2).setPreferredWidth(120); }
if (jComboBox1.getSelectedItem().equals("Web + súbor")) { jTable1.setModel(new MojTableModel3()); jTable1.getColumnModel().getColumn(0).setPreferredWidth(45); jTable1.getColumnModel().getColumn(1).setPreferredWidth(45); jTable1.getColumnModel().getColumn(2).setPreferredWidth(120); }
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { PridajFrame a = new PridajFrame(); a.setVisible(true); a.setDefaultCloseOperation(DISPOSE_ON_CLOSE); }
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
if(!jComboBox1.getSelectedItem().equals("Súbor")) { jComboBox1.setSelectedItem("Súbor"); }
Metody m = new Metody(); if (jTable1.getSelectedRow() == -1) { JOptionPane.showMessageDialog(null, "Oznac v tabuľke, koho chceš vymazať"); } else { int request = JOptionPane.showConfirmDialog(null, "Naozaj chceš vymazať účastníka?", "b", JOptionPane.YES_NO_OPTION); if (request == JOptionPane.YES_OPTION) { try { m.vymazUcastnika(jTable1.getSelectedRow()); jTable1.setModel(new MojTableModel2()); } catch (IOException ex) { Logger.getLogger(Okno.class.getName()).log(Level.SEVERE, null, ex); } } } }
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) { TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>( jTable1.getModel()); jTable1.setRowSorter(sorter); String text = jTextField1.getText(); if (text.length() == 0) { sorter.setRowFilter(null); } else { sorter.setRowFilter(RowFilter.regexFilter("(?i)" +text)); } }
/** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Okno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Okno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Okno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Okno.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold>
/* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Okno().setVisible(true); } }); }
// Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JComboBox jComboBox1; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private javax.swing.JTextField jTextField1; // End of variables declaration }
|
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 Bydlisko: ZV/BA | Napísal matwej: 08.05.2014 2:33 | |
|
myslim, ze excp ti to naznacil jasne, tam kde volas to getValueAt s rowIndex pchas do argumentu get z arraylistu 5 a arraylist ma 5 poloziek, takze posledny index je 4 a nie 5tka (ako keby si tam mal niekde +1 co by niekde nemal byt), si si isty tou inicializaciou toho listu (new DataUcastnikov().dajUcastnikovURL();)? oh a urcite by som to dal do konstruktora radsej ako toto divne deklarovanie explicitne, dajak takto: Kód: private String Stlpce[]; private ArrayList<Ucastnik> uc;
public MojTableModel() { Stlpce[] = {"Meno", "Priezvisko", "Email", "Rodné číslo", "Adresa", "Psč", "Mesto", "Tel.č. účastník", "Tel.č. rodič", "Poznámka"}; uc = new DataUcastnikov().dajUcastnikovURL(); }
hmm a pre tu srandu, , skus mozno dat: Kód: Ucastnik u = uc.get(rowIndex-1);
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| HDTV Kabel Pb out Pr out Y out v Ostatné | 9 | 1420 | 15.10.2010 17:47 armin.owen | | Kde najdem redukciu HDTV-out na TV-out..... v nVidia grafické karty | 18 | 1848 | 12.02.2007 11:01 Predator8284 | | java - JButton v JTable (ASAP) v Assembler, C, C++, Pascal, Java | 0 | 540 | 05.12.2009 12:27 tlacitko Enter | | anisotropic filtering v ATI/AMD grafické karty | 3 | 1007 | 30.04.2011 21:40 incognito | | Call of Juarez Bound in Blood v Počítačové hry | 29 | 1706 | 11.07.2009 15:10 AsuSmaNiaK | | Iptables firewall + mac filtering v Bezpečnosť a firewally | 0 | 872 | 02.09.2008 13:47 Roko | | C# stack overflow exception v Technológia .NET | 2 | 522 | 22.08.2015 22:53 p4tooo | | c++ main return exception v Assembler, C, C++, Pascal, Java | 4 | 403 | 12.07.2012 12:43 HT | | Call of Juarez Bound in Blood Crash v Počítačové hry | 3 | 464 | 19.11.2011 18:56 walther | | error handling - trigger_error vs throw Exception v PHP, ASP | 3 | 568 | 19.04.2011 15:31 ThePlaky | | Vaše pripojenie nie je súkromné / This site is blocked due to content filtering. [ Choď na stránku: 1, 2 ] v Sieťové a internetové programy | 30 | 2141 | 07.10.2017 21:31 Adia48 | | TV-out v ATI/AMD grafické karty | 12 | 996 | 07.05.2009 12:18 Daron | | subor .OUT??? v Video programy | 3 | 2905 | 02.09.2006 7:14 hawo | | Digital OUT v Zvuk | 4 | 411 | 29.08.2013 18:34 KocuR | | TV OUT v TV | 5 | 1225 | 28.06.2006 10:57 Luks | | FLat out 2 v Počítačové hry | 1 | 506 | 14.03.2010 13:43 eXistenZ |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|