kann man in ein Jtable auch bilder machen?

Status
Nicht offen für weitere Antworten.
ha wie geht den des
des müsst ihr mir aber mal ganz schnell erkläre i glaub i spinn
heide nei was de jtable so alles mache ka des isch ja net zu fasse

ups hab den link nicht gesehen:
Klick, mit "getColumnClass" und einem javax.swing.Icon geht das gut

i bin wohl blind des gibts ja net
 
wie wärs wenn du mah auf den link klickst den beni dir gegeben hast, oder dir am besten das ganze JTable tutorial durchliest :autsch:
da steht das nämlich :meld:
 
i sollt wohl net soviel saufe dann würd i au de links net immer übersehe oder i sollte net soviel
am pc hocke das
THX für den link
 
ich blick immer noch nicht ich will das ein component angezeigt wird wie zb: JButton

Code:
package outp.swing;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.*;
import javax.swing.table.*;
import javax.swing.Icon;

class Model  extends JLabel implements TableCellRenderer{

public Model(){
      setOpaque( true );
   }
   public Component getTableCellRendererComponent(JTable table, Object value,
         boolean isSelected, boolean hasFocus, int row, int column) {

      // die normalen Farben
if(value instanceof JButton){

return new JButton("sdf");
}
return this;



}

}
 
Du musst diesen TableCellRenderer beim JTable registrieren ("JTable.setDefaultRenderer( JButton.class, new Model() )"), und dein TableModel muss in der entsprechenden Spalte bei "getColumnClass" auch "JTable.class" zurückgeben.

P.S. und nenn dein Renderer nicht Model, das verwirrt... :wink:
 
die Buttons werden anezeigt aber wenn ich draufklicke dann ist es so als wäre es ein Label und ich kann die Buttons Editieren
Code:
package outp.swing;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.*;
import java.math.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;

public class jta implements da{

public jta(){
    JTable jt=new JTable(new jtam(d4.DATA,d4.CS));
 JFrame jf=new JFrame();

        Container cp = jf.getContentPane();
        cp.setCursor(new Cursor(Cursor.HAND_CURSOR));
        jt.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
    jt.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    jt.setColumnSelectionAllowed(true);
    jt.setCellSelectionEnabled(true);
    jt.setRowSelectionAllowed(true);
    jt.setDefaultRenderer(Object.class,new detr());
        cp.add(new JScrollPane(jt), BorderLayout.CENTER);
        jf.setVisible(true);
        jf.pack();
        jf.addWindowListener(new Bild.WindowClosingAdapter(true));
}
public static void main(String[] args){
    new jta();
}
}
class jtcm extends DefaultTableColumnModel{
    public Class getColumnClass(int columnIndex)
   {
       return JButton.class;
    }


}
class jtam extends DefaultTableModel
{
	 public Class getColumnClass(int columnIndex)
	   {
	       return JButton.class;
    }
    public jtam(Object[][] d,Object[] cn){
		super(d,cn);

    }
}
class detr extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(
     JTable table,   Object value,     boolean isSelected,
     boolean hasFocus,
     int row,
     int column
   ){
	   return (JButton) value;
   }

}
class da4{
  {
        for(int i1=0;i1<3;i1++){
            for(int i2=0;i2<3;i2++){
                DATA[i1][i2]=new JButton("sdf");
            }
        }
    }
    public static final JButton[][] DATA=new JButton[3][3];
    public static final String[] CS={"1r","sd","sd",};
}
 
Um was zu editieren (hatten wir die Frage nicht schonmal im Forum, *nachdenk*, *grübel*... ), muss man einen TableCellEditor machen.

In deinem Fall kann das eine Klasse sein die nur das Interface implementiert, und als Editor-Component jeweils den Button zurückgibt. Der Editor wird dann bei der JTable über "setDefaultEditor" für "JButton.class" angemeldet.
 
millinär hat gesagt.:
die Buttons werden anezeigt aber wenn ich draufklicke dann ist es so als wäre es ein Label und ich kann die Buttons Editieren

Er hat nicht das Problem wie editiere ich die Buttons. Sondern bei ihm sind sie Editierbar. Er möchte sie aber als normal Buttons habe.

Zumindest versteher ich diese AUssgae so.
 
Bei einer JTable wird nur gezeichnet, nichts hinzugefügt. Normalerweise sieht man also nur die Bilder der Buttons in der Table, die Buttons selbst sind gar nicht dort.

Lediglich ein CellEditor wird tatsächlich der Table hinzugefügt. Und somit kann man auch nur einen CellEditor irgendwie per Maus oder Tastatur beeinflussen :wink:
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben