bobby1112
14-06-2010, 09:41
salve ragazzi ho questo problema devo inserire un pulsante in una jtable, riesco ad inserirlo ma non riesco a catturare l'evento ecco il codice
package gui;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.accessibility.AccessibleTableModelChange;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import model.NucleoMaschera;
public class PanelFiltri extends JPanel{
private JTable tabellaFiltri;
private NucleoMaschera datiFiltri= new NucleoMaschera();
private ModelTabellaFiltri modelloTabella=new ModelTabellaFiltri();
private CellRenderer renderer= new CellRenderer();
JButton buttonAvanzaRecord=new JButton("ok");
public PanelFiltri(NucleoMaschera datiFiltri)
{
super();
this.datiFiltri=datiFiltri;
this.setPreferredSize(new Dimension(400,100));
tabellaFiltri=new JTable(modelloTabella);
Box mainBox=Box.createVerticalBox();
Box filtriBox=Box.createHorizontalBox();
filtriBox.add(tabellaFiltri);
filtriBox.add(Box.createHorizontalStrut(550));
funzionalita();
mainBox.add(filtriBox);
addListener();
this.add(mainBox);
}
public void addListener()
{
buttonAvanzaRecord.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
System.out.println("sto premendo");
}
});
}
public void funzionalita()
{
tabellaFiltri.setGridColor(Color.white);
for(int i=0;i<=4;i++)
{
tabellaFiltri.getColumnModel().getColumn(i).setCellRenderer(renderer);
tabellaFiltri.getColumnModel().getColumn(i).setCellRenderer(renderer);
}
}
private class CellRenderer implements TableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column)
{
JLabel cella=new JLabel(); // Questa rappresenta la singola cella
if(row==0 && column==2)
return buttonAvanzaRecord;
if(value!=null)
{
cella.setText(value.toString());
// cella.setBorder((Border) Color.white);
if(column==1 || column==3 || column==5)
cella.setFont(new Font("Arial",Font.PLAIN,12));
}
return cella;
}
}
private class ModelTabellaFiltri extends AbstractTableModel
{
@Override
public int getColumnCount() {
return 5;
}
@Override
public int getRowCount() {
return 1;
}
@Override
public Object getValueAt(int riga, int colonna) {
if(riga==0 && colonna==0)
return "Utenti";
else if(riga==0 && colonna==1)
return datiFiltri.getIdClienti().size();
else return null;
}
}
}
help me
package gui;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.accessibility.AccessibleTableModelChange;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import model.NucleoMaschera;
public class PanelFiltri extends JPanel{
private JTable tabellaFiltri;
private NucleoMaschera datiFiltri= new NucleoMaschera();
private ModelTabellaFiltri modelloTabella=new ModelTabellaFiltri();
private CellRenderer renderer= new CellRenderer();
JButton buttonAvanzaRecord=new JButton("ok");
public PanelFiltri(NucleoMaschera datiFiltri)
{
super();
this.datiFiltri=datiFiltri;
this.setPreferredSize(new Dimension(400,100));
tabellaFiltri=new JTable(modelloTabella);
Box mainBox=Box.createVerticalBox();
Box filtriBox=Box.createHorizontalBox();
filtriBox.add(tabellaFiltri);
filtriBox.add(Box.createHorizontalStrut(550));
funzionalita();
mainBox.add(filtriBox);
addListener();
this.add(mainBox);
}
public void addListener()
{
buttonAvanzaRecord.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
{
System.out.println("sto premendo");
}
});
}
public void funzionalita()
{
tabellaFiltri.setGridColor(Color.white);
for(int i=0;i<=4;i++)
{
tabellaFiltri.getColumnModel().getColumn(i).setCellRenderer(renderer);
tabellaFiltri.getColumnModel().getColumn(i).setCellRenderer(renderer);
}
}
private class CellRenderer implements TableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column)
{
JLabel cella=new JLabel(); // Questa rappresenta la singola cella
if(row==0 && column==2)
return buttonAvanzaRecord;
if(value!=null)
{
cella.setText(value.toString());
// cella.setBorder((Border) Color.white);
if(column==1 || column==3 || column==5)
cella.setFont(new Font("Arial",Font.PLAIN,12));
}
return cella;
}
}
private class ModelTabellaFiltri extends AbstractTableModel
{
@Override
public int getColumnCount() {
return 5;
}
@Override
public int getRowCount() {
return 1;
}
@Override
public Object getValueAt(int riga, int colonna) {
if(riga==0 && colonna==0)
return "Utenti";
else if(riga==0 && colonna==1)
return datiFiltri.getIdClienti().size();
else return null;
}
}
}
help me