JTable - problem

0

Witam,
Chcialbym dodać pewną akcje do mojego JTabla, a mianowicie:
Stworzylem sobie 3 kolumny i kilkanascie wierszy, i teraz chciałbym aby tylko i wylącznie w 3 kolumnie po zaznaczeniu jakiegos pola i np. kliknieciu na niego dwa razy otworzylo mi sie byle jakie okno, jak to zrobic ? W jaki sposob do tego podejsc? Z gory dzieki za pomoc

0

Witam,
Ale o jakie pole chodzi bo 2 razy przeczytalem i nadal nie moge sie domyslec... czy to ma byc np jakis przycisk w ostatniej kolumnie i na kliknieciu ktorego ma sie np. otwierac content wiersza w nowym oknie. jak tak to trzeba ustawic dla 3 kolumny odpowiednio ColumnRenderer'a oraz ColumnEditora ... z tego co pamietam to w kolumne mozna wrzucic wszystko co dziedziczy po Composite ... wiec przykladowo mozna zrobic ButtonColumnRenerera extendujacego JButton (jakos tak kiedys robilem) i smigalo ladnie

0

a można jakiś przykład ?

0

TabelaKlas = new DefaultTableModel();
TabelaKlas.addColumn("Klasa");
TabelaKlas.addColumn("Imię i nazwisko ucznia");
TabelaKlas.addColumn("Oceny");
TabelaKlas.addColumn("Guziki");
tabela = new JTable(TabelaKlas){
@Override
public boolean isCellEditable(int row, int column){
return false;
}
};
scroll= new JScrollPane(tabela);

i wlasnie do kolumny Guziki chce wstać button ktory po nacisnieciu otwiera nowego np. JFrama

0

Wystarczy wpisac w google hinty co zapodalem:

  1. http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#colorRenderer
    2)http://www.javakb.com/Uwe/Forum.aspx/java-gui/5114/click-a-button-in-a-JTable
  2. http://www.java2s.com/Code/Java/Swing-Components/ButtonTableExample.htm
  3. http://www.google.pl/search?hl=en&q=tablecellrenderer+extends+JButton&btnG=Search&aq=f&oq=

w sumie jak na dloni ;)

Pamietam ze jak zle cos podziedziczylem z celleditorem ... to mial tendencje do mrygniec guzika (przy klikaniu tak raz na 10 klikniec cos sie repaint nie tak chyba wywolywal) ale jakos to udalo sie zaradzic... ale ja mialem jeszcze sporo dodatkowych wymagan itp itd wiec moze u ciebie bedzie bez problemu

0

extra dzieki, to zadziałało, tylko jest jeszcze cos takiego:
class ButtonEditor extends DefaultCellEditor {
JButton button;
private String label;
private boolean isPushed;
JDialog dialog;

public ButtonEditor(JCheckBox checkBox) {
super(checkBox);
button = new JButton();
button.setOpaque(true);

button.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {

       NauczycielWstaw wst=new NauczycielWstaw();
    fireEditingStopped();
  }
});

}

@Override

public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
if (isSelected) {
button.setForeground(table.getSelectionForeground());
button.setBackground(table.getSelectionBackground());
} else{
button.setForeground(table.getForeground());
button.setBackground(table.getBackground());
}
label = (value ==null) ? "" : value.toString();
button.setText( label );
isPushed = true;
return button;
}

@Override

public Object getCellEditorValue() {
if (isPushed) {
//
//

  //JOptionPane.showMessageDialog(button ,label + ": Ouch!");
  // System.out.println(label + ": Ouch!");
}
isPushed = false;
return new String( label ) ;

}

@Override

public boolean stopCellEditing() {
isPushed = false;
return super.stopCellEditing();
}

@Override

protected void fireEditingStopped() {
super.fireEditingStopped();
}
}

i jak widać w kodzie Tworze sobie nowy obiekt Typu nauczycielWstaw ktory dziedziczy po JPanelu tzn Tworze nowe okno tam ze swoimi zmiennymi, no i rozmieszczeniem etc.
tylko ze jak nacisne na przycisk daje błedy typu NullPointerException... i nie wiem jak sobie z tym poradzic ;/ Jakies sugestie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1