knapper i JTable
Her er noget kode genereret af Forte hvor jeg har en JTable i en JScrollpane. I min JTable vil jeg gerne tilføje 2 knapper i de sidste 2 celler i hver række. Det kan jeg bare ikke lige få til at virke.Nogen foreslag????
Her er koden...
package javaKlient;
import java.util.*;
import javax.swing.*;
import java.awt.*;
public class AdministrerBiler extends javax.swing.JPanel {
GUI_control gui;
/** Creates new form AdministrerBiler */
public AdministrerBiler(GUI_control gui) {
this.gui = gui;
this.setBounds(0,0,700,500);
initComponents();
scrollpane.setBounds(20,75,650,300);
}
/** 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.
*/
private void initComponents() {
VelkomstBesked = new javax.swing.JLabel();
menuKnap = new javax.swing.JButton();
opretnybilKnap = new javax.swing.JButton();
scrollpane = new javax.swing.JScrollPane();
table = new javax.swing.JTable();
setLayout(null);
VelkomstBesked.setFont(new java.awt.Font("Dialog", 1, 36));
VelkomstBesked.setText("Administrer biler");
add(VelkomstBesked);
VelkomstBesked.setBounds(180, 20, 290, 40);
menuKnap.setText("Til menu");
menuKnap.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
menuKnapActionPerformed(evt);
}
});
add(menuKnap);
menuKnap.setBounds(200, 390, 100, 26);
opretnybilKnap.setText("Opret ny bil");
opretnybilKnap.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
opretnybilKnapActionPerformed(evt);
}
});
add(opretnybilKnap);
opretnybilKnap.setBounds(320, 390, 100, 26);
scrollpane.setBackground(new java.awt.Color(255, 255, 255));
scrollpane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollpane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollpane.setAutoscrolls(true);
table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null}
},
new String [] {
"Bil_ID", "Mærke", "Model", "Årgang", "Km kørt", "Pris", "Info", "Slet"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
scrollpane.setViewportView(table);
add(scrollpane);
scrollpane.setBounds(13, 73, 610, 300);
}
private void opretnybilKnapActionPerformed(java.awt.event.ActionEvent evt) {
this.setVisible(false);
gui.opretbil = new OpretBil(gui);
gui.opretbil.setVisible(true);
}
private void menuKnapActionPerformed(java.awt.event.ActionEvent evt) {
this.setVisible(false);
gui.hovedmenu.setVisible(true);
}
protected void visbiler() {
javax.swing.table.DefaultTableModel t = new javax.swing.table.DefaultTableModel();
table.setModel(t);
Vector vec = null;
t.addColumn((Object)"Bil_ID");
t.addColumn((Object)"Mærke");
t.addColumn((Object)"Model");
t.addColumn((Object)"Årgang");
t.addColumn((Object)"Km kørt");
t.addColumn((Object)"Pris");
t.addColumn((Object)"Info");
t.addColumn((Object)"Slet");
try {
vec = gui.admin_control.getBiler();
}
catch (java.rmi.RemoteException e) {
VariableBesked vindue = new VariableBesked("Fejl - biler ikke modtaget! " + e);
vindue.show();
}
//Det er her hvor jeg tager vectorerne ud af hovedvectoren og tilføjer
//2 knapper også lægger jeg vectoren ind i tabellen med t.addRow(mid); -
//det virker ikke - hvorfor ????
if (vec.elementAt(0).equals("+") && vec.size() >= 2) {
JFrame frame1 = new JFrame();
JFrame frame2 = new JFrame();
final JButton infoknap = new JButton("Info");
infoknap.setBounds(0,0,30,20);
final JButton sletknap = new JButton("Slet");
frame1.getContentPane().add(infoknap);
frame2.getContentPane().add(sletknap);
for (int i=1; i<vec.size(); i++) {
Vector mid = (Vector)vec.elementAt(i);
mid.addElement(frame1);
mid.addElement(frame2);
infoknap.setName((String)mid.elementAt(1));
sletknap.setName((String)mid.elementAt(1));
t.addRow(mid);
infoknap.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
visInfoActionPerformed(infoknap.getName());
}
});
sletknap.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
visSletActionPerformed(sletknap.getName());
}
});
}//end for
}//end if
}//end visbiler()
private void visInfoActionPerformed(String name) {
this.setVisible(false);
gui.getContentPane().add(gui.bilinfo);
gui.bilinfo.hentbil(name);
gui.bilinfo.setVisible(true);
}
private void visSletActionPerformed(String name) {
this.setVisible(false);
gui.getContentPane().add(gui.sletbil);
gui.sletbil.slet(name);
gui.sletbil.setVisible(true);
}
// Variables declaration - do not modify
private javax.swing.JTable table;
private javax.swing.JScrollPane scrollpane;
private javax.swing.JLabel VelkomstBesked;
private javax.swing.JButton opretnybilKnap;
private javax.swing.JButton menuKnap;
// End of variables declaration
}
