Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Modrá je dobrá
zelená je lepší

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Programování [ŽP: neomezená] (kategorie Programování) moderuje tvx.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: gclqeks
[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
dodanek Dodanek 21.5.2011 23:25  1261
No nic, já na to seru. Pokud by někdo byl tak boží a našel v tom mou chybu, nabízím sestru a půl království. Nejsem si úplně jistej, co je přesně to "e" u tableChanged, možná v tom tkví chyba.


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package gui;

import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import logika.EvidenceZamestnancu;
import logika.Zamestnanec;

/**
*
* @author Ondra
*/
public class TableZamestnanec extends AbstractTableModel implements TableModelListener {

private EvidenceZamestnancu evidence;
String[] zahlaviSloupcu = {"ID", "Jmeno", "Prijmeni", "Práce", "Rodné číslo", "Telefon", "Adresa"};

public TableZamestnanec(EvidenceZamestnancu evidence) {
this.evidence = evidence;
}

@Override
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}

@Override
public String getColumnName(int col) {
return zahlaviSloupcu[col];
}

public int getRowCount() {
return evidence.pocet();
}

public int getColumnCount() {
return 7;
}

public Object getValueAt(int row, int col) {
// naplneni seznamu

Zamestnanec polozka = (Zamestnanec) evidence.getPolozka(row);
switch (col) {
case 0:
return (polozka.getID());
case 1:
return (polozka.getJmeno());
case 2:
return (polozka.getPrijmeni());
case 3:
return (polozka.getPrace());
case 4:
return (polozka.getRodneCislo());
case 5:
return (polozka.getTelefon());
case 6:
return (polozka.getAdresa());
default:
return null;
}

}

public void tableChanged(TableModelEvent e) {
evidence.nactiSeznam();
fireTableChanged(e);

}
}

----------------------------------------------------------------


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package gui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import logika.EvidenceZamestnancu;
import logika.Zamestnanec;

/**
*
* @author Ondra
*/
public class OknoZamestnanec {

private JFrame OknoZamestnanecFrame;
private JPanel westPanel;
private JPanel centerPanel;
private JButton newButton;
private JButton editButton;
private JButton deleteButton;
private JButton backButton;
private JPanel mistoPanel;
private JTextField zobrazTextField;
private Menu menu;
private NewZamestnanec newZamestnanec;
private TableModel TableZamestnanec;
private JTable evidenceTable;
private int vybranyRadek;

public OknoZamestnanec(TableModel model) {
this.TableZamestnanec = model;
init();
setVisible(true);

}

private class VyberRadku implements ListSelectionListener {

public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
if (!lsm.isSelectionEmpty()) {
vybranyRadek = lsm.getMinSelectionIndex();
}
zobrazTextField.setText((String) TableZamestnanec.getValueAt(vybranyRadek, 1));
}
}

/**
* Metoda inicializuje a propojuje jednotlivé komponenty GUI
*/
private void init() {

OknoZamestnanecFrame = new JFrame();
menu = new Menu();

OknoZamestnanecFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
OknoZamestnanecFrame.setTitle("Evidence Zaměstnanců");
OknoZamestnanecFrame.setSize(700, 400);
OknoZamestnanecFrame.setLocation(200, 200);
OknoZamestnanecFrame.setJMenuBar(menu);
OknoZamestnanecFrame.setResizable(false);

westPanel = new JPanel();


westPanel.setLayout(new FlowLayout());
westPanel.setPreferredSize(new Dimension(140, 400));
newButton = new JButton("Nový");
newButton.addActionListener(new NewZamestnanecActionListener());
editButton = new JButton("Edit");
deleteButton = new JButton("Smaž");
deleteButton.addActionListener(new DeleteZamestnanecActionListener());

backButton = new JButton("Zpět");
backButton.addActionListener(new BackActionListener());

newButton.setPreferredSize(new Dimension(120, 25));
editButton.setPreferredSize(new Dimension(120, 25));
deleteButton.setPreferredSize(new Dimension(120, 25));
backButton.setPreferredSize(new Dimension(120, 25));


mistoPanel = new JPanel();
mistoPanel.setPreferredSize(new Dimension(140, 210));


westPanel.add(newButton);
westPanel.add(editButton);
westPanel.add(deleteButton);
westPanel.add(mistoPanel);
westPanel.add(backButton);




evidenceTable = new JTable(TableZamestnanec);
evidenceTable.setPreferredScrollableViewportSize(new Dimension(540, 400));
evidenceTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListSelectionModel modelVyberu = evidenceTable.getSelectionModel();

modelVyberu.addListSelectionListener(new VyberRadku());
JScrollPane scpRoluj = new JScrollPane(evidenceTable);
OknoZamestnanecFrame.add(scpRoluj, BorderLayout.CENTER);
zobrazTextField = new JTextField(30);
// OknoZamestnanecFrame.add(zobrazTextField, BorderLayout.SOUTH);

OknoZamestnanecFrame.add(westPanel, BorderLayout.WEST);

}

class BackActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {
setVisible(false);
}
}

class DeleteZamestnanecActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

EvidenceZamestnancu temp = new EvidenceZamestnancu();
TableZamestnanec.addTableModelListener(evidenceTable);
temp.nactiSeznam();

temp.deletePolozka(temp.getPolozka(vybranyRadek));

temp.ulozSeznam();
}
}

class NewZamestnanecActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

NewZamestnanec newZamestnanec = new NewZamestnanec();
newZamestnanec.setVisible(true);
}
}

/**
* Metoda, která zviditelňuje GUI
* @param viditelnost GUI
*/
public void setVisible(boolean viditelnost) {
OknoZamestnanecFrame.setVisible(viditelnost);
}
}
dodanek Dodanek 21.5.2011 22:50  1260
TableZamestnanec.addTableModelListner(evidenceTable); nefunguje jenom proto, že jsem kokot a neumim napsat Listener. Jinak když tomu dám tu tabulku, tak se to přeloží, ale stejně to furt nejede :(
dodanek Dodanek 21.5.2011 22:44  1259
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.awt.event.ActionEvent cannot be cast to javax.swing.event.TableModelListener, překvapivě. Takže tohle je taky píčovina :)
dodanek Dodanek 21.5.2011 22:43  1258
TableZamestnanec.addTableModelListener((TableModelListener) e);

se mi přeloží, ale padá mi to .. vyzkoumám proč
dodanek Dodanek 21.5.2011 22:29  1257
JTable. Pochopil jsem tak prikaz "predej tomu tu tabulku" :)

jeste me napadlo druhy reseni:
evidenceTable.setModel(TableZamestnanec); (misto predavani modelu v konstruktoru), ale to mi pada .. deklarace v modelu je takovahle:

public void setModel(TableModel model) {
this.model = model;
this.addTableModelListener(this);
}
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 21.5.2011 22:20  1256
Dodanek [1255]: jakyho typu je "evidenceTable" z "TableZamestnanec.addTableModelListner(evidenceTable);"?
dodanek Dodanek 21.5.2011 22:14  1255
public class TableZamestnanec extends AbstractTableModel implements TableModelListener {

public void tableChanged(TableModelEvent e) {
evidence.nactiSeznam();
fireTableChanged(e);
}

a tak okolo ..

a v okně, kde je tabulka,
TableZamestnanec.addTableModelListner(evidenceTable);
(což nefunguje, ta metoda tam údajně není) ..

mám pocit, že v tom prvním tomu musim předat nějakej konkrétní event, ale nevim, jakej ..

a s tím druhým si absolutně nevím rady

a připadám si jako debil opravdu velice :D
dodanek Dodanek 21.5.2011 22:09  1254
Tak. Dospěl jsem do fáze, kdy slovo od slova chápu, co mi poradil Tessien, jen to prostě kurva zase nefunguje :D a to googlím o život a snažím se pobrat různý příklady ..
dodanek Dodanek 21.5.2011 21:40  1253
Jasně, už to pobírám .. implements TableModelListener je ta kouzelná fráze :)
operator304 21.5.2011 21:37  1252
Ta uz tam je, ty ji jenom pouzijes zpusobem, kterej ti pred chvili popsal Tess
dodanek Dodanek 21.5.2011 21:36  1251
Uááá, neříkejte mi, že potřebuju observer, to je jedna z věcí, kterou prostě nikdy nepochopim, jak ji mám naimplementovat :D
operator304 21.5.2011 21:32  1250
Nj, observer ftw...
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 21.5.2011 21:29  1249
Dodanek [1247]: jak jsem rikal, ja Swing nepouzivam, ale co tak koukam do dokumentace:
JTable implementuje TableModelListner. Predpokladam, ze ji predhazujes nejakej TableModel. Tak na tom svym modelu zavolej "addTableModelListner" a predej do toho tu tabulku. Pak pokud ten tvuj TableModel patricne vyhazuje eventy, kdyz se zmeni (tj. nacte novy data ze souboru), tak by se tabulka mela sama prekreslit.
operator304 21.5.2011 21:29  1248
Na to jsou moje swingovske znalosti kratke. Doporucil bych google nebo stackoverflow.
dodanek Dodanek 21.5.2011 21:21  1247
Jestli můžu zase otravovat - vim, že je to hrozně obecnej dotaz, ale jde nějak jednoduše aktualizovat obsah JTable? Například když mám tlačítko, který z ní smaže záznam (nebo ho naopak přidá), tak prostě v daťáku ten záznam v pohodě vytvořim/smažu, ale abych to viděl, musim znovu otevřít to okno s tabulkou. Zaboha nemůžu přijít na to, jak to udělat hned :/

[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt