import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 29.05.2007
* @author Johannes Paul
*/
public class example extends JFrame {
// Anfang Variablen
private JTextField jTextField10 = new JTextField();
private JTextField jTextField1 = new JTextField();
private JTextField jTextField2 = new JTextField();
private JTextField jTextField3 = new JTextField();
private JTextField jTextField4 = new JTextField();
private JTextField jTextField6 = new JTextField();
private String[] jComboBox1Daten = {"Beispiel", "Beispiel2", "Beispiel3"};
private JComboBox jComboBox1 = new JComboBox(jComboBox1Daten);
private JTextField jTextField1_1[] = new JTextField[50];
private JTextField jTextField2_1[] = new JTextField[50];
private JTextField jTextField3_1[] = new JTextField[50];
private JTextField jTextField4_1[] = new JTextField[50];
private JComboBox jComboBox1_1[] = new JComboBox[50];
private JTextField jTextField5_1[] = new JTextField[50];
private JButton jButton1_1[] = new JButton[50];
int akt_position;
int zeilenNummer = 0;
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel jLabel3 = new JLabel();
private JLabel jLabel4 = new JLabel();
private JLabel jLabel5 = new JLabel();
private JLabel jLabel6 = new JLabel();
private JButton jButton1 = new JButton();
Container cp = getContentPane();
// Ende Variablen
public int getZeilenNummer() {
return this.zeilenNummer;
}
public void erhöheZeilenNummer() {
this.zeilenNummer += 1;
}
public void deklaration(){
}
cp.add(jTextField1_1[getZeilenNummer()]);
cp.add(jTextField2_1[getZeilenNummer()]);
cp.add(jTextField3_1[getZeilenNummer()]);
cp.add(jTextField4_1[getZeilenNummer()]);
cp.add(jComboBox1_1[getZeilenNummer()]);
cp.add(jTextField5_1[getZeilenNummer()]);
cp.add(jButton1_1[getZeilenNummer()]);
erhöheZeilenNummer();
}
public example(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 1005;
int frameHeight = 329;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
cp.setLayout(null);
// Anfang Komponenten
jTextField1.setBounds(16, 48, 41, 24);
jTextField1.setText("Textfeld");
cp.add(jTextField1);
jTextField2.setBounds(64, 48, 121, 24);
jTextField2.setText("Textfeld");
cp.add(jTextField2);
jTextField3.setBounds(192, 48, 121, 24);
jTextField3.setText("Textfeld");
cp.add(jTextField3);
jTextField4.setBounds(320, 48, 121, 24);
jTextField4.setText("Textfeld");
cp.add(jTextField4);
jTextField6.setBounds(600, 48, 121, 24);
jTextField6.setText("Textfeld");
cp.add(jTextField6);
jComboBox1.setBounds(448, 48, 145, 24);
cp.add(jComboBox1);
public void neueZeile(int zeilenNummer) {
for (int i = 0; i < 50; i++) {
jTextField1_1[i] = new JTextField();
jTextField2_1[i] = new JTextField();
jTextField3_1[i] = new JTextField();
jTextField4_1[i] = new JTextField();
jComboBox1_1[i] = new JComboBox(jComboBox1Daten);
jTextField5_1[i] = new JTextField();
jButton1_1[i] = new JButton();
}
int akt_position = 48;
for (int i = 0; i < 50; i++) {
akt_position += 32;
jTextField1_1[i].setBounds(16, akt_position,41, 24);
jTextField1_1[i].setText("Textfeld");
jTextField2_1[i].setBounds(64, akt_position, 121, 24);
jTextField2_1[i].setText("Textfeld");
jTextField3_1[i].setBounds(192, akt_position, 121, 24);
jTextField3_1[i].setText("Textfeld");
jTextField4_1[i].setBounds(320, akt_position, 121, 24);
jTextField4_1[i].setText("Textfeld");
jTextField5_1[i].setBounds(600, akt_position, 121, 24);
jTextField5_1[i].setText("Textfeld");
jComboBox1_1[i].setBounds(448, akt_position, 145, 24);
jButton1_1[i].setBounds(728, akt_position, 120, 25);
jButton1_1[i].setText("Button");
jButton1_1[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
neueZeile(getZeilenNummer());
}
});
}
jLabel1.setBounds(16, 32, 44, 16);
jLabel1.setText("Label");
jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel1);
jLabel2.setBounds(64, 32, 124, 16);
jLabel2.setText("Label");
jLabel2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel2);
jLabel3.setBounds(192, 32, 124, 16);
jLabel3.setText("Label");
jLabel3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel3);
jLabel4.setBounds(320, 32, 124, 16);
jLabel4.setText("Label");
jLabel4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel4);
jLabel5.setBounds(448, 32, 148, 16);
jLabel5.setText("Label");
jLabel5.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel5);
jLabel6.setBounds(600, 32, 124, 16);
jLabel6.setText("Label");
jLabel6.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel6);
jButton1.setBounds(728, 48, 120, 25);
jButton1.setText("Button");
cp.add(jButton1);
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1ActionPerformed(evt);
neueZeile(getZeilenNummer());
}
});
// Ende Komponenten
setResizable(true);
setVisible(true);
}
// Anfang Ereignisprozeduren
public void jButton1ActionPerformed(ActionEvent evt) {
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
new example("example");
}
}
// Variablen
Container cp = new JPanel();
...
// Im Konstruktor
getContentPane().add(new JScrollPane(cp));
class SettingsPanel {
// Enthält TextFields, ComboBox und Button für eine Zeile
}
ArrayList<SettingsPanel> settingsPanels = ..
SettingsPanel sp = new SettingsPanel();
settingsPanels.add(sp);
cp.add(sp);
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 29.05.2007
* @author Johannes Paul
*/
public class example extends JFrame {
// Anfang Variablen
private JTextField jTextField10 = new JTextField();
private JTextField jTextField1 = new JTextField();
private JTextField jTextField2 = new JTextField();
private JTextField jTextField3 = new JTextField();
private JTextField jTextField4 = new JTextField();
private JTextField jTextField6 = new JTextField();
private String[] jComboBox1Daten = {"Beispiel", "Beispiel2", "Beispiel3"};
private JComboBox jComboBox1 = new JComboBox(jComboBox1Daten);
private JTextField jTextField1_1[] = new JTextField[50];
private JTextField jTextField2_1[] = new JTextField[50];
private JTextField jTextField3_1[] = new JTextField[50];
private JTextField jTextField4_1[] = new JTextField[50];
private JComboBox jComboBox1_1[] = new JComboBox[50];
private JTextField jTextField5_1[] = new JTextField[50];
private JButton jButton1_1[] = new JButton[50];
int akt_position;
int zeilenNummer = 0;
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel jLabel3 = new JLabel();
private JLabel jLabel4 = new JLabel();
private JLabel jLabel5 = new JLabel();
private JLabel jLabel6 = new JLabel();
private JButton jButton1 = new JButton();
Container cp = new JPanel();
JScrollPane scrollPane;
// Ende Variablen
public int getZeilenNummer() {
return this.zeilenNummer;
}
public void erhöheZeilenNummer() {
this.zeilenNummer += 1;
}
public void deklaration(){
}
public void neueZeile(int zeilenNummer) {
cp.add(jTextField1_1[getZeilenNummer()]);
cp.add(jTextField2_1[getZeilenNummer()]);
cp.add(jTextField3_1[getZeilenNummer()]);
cp.add(jTextField4_1[getZeilenNummer()]);
cp.add(jComboBox1_1[getZeilenNummer()]);
cp.add(jTextField5_1[getZeilenNummer()]);
cp.add(jButton1_1[getZeilenNummer()]);
erhöheZeilenNummer();
cp.setPreferredSize(new Dimension(900, 48 + getZeilenNummer() * 32));
scrollPane.validate();
scrollPane.repaint();
}
public example(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 1005;
int frameHeight = 329;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
cp.setLayout(null);
scrollPane = new JScrollPane(cp);
getContentPane().add(scrollPane);
// Anfang Komponenten
jTextField1.setBounds(16, 48, 41, 24);
jTextField1.setText("Textfeld");
cp.add(jTextField1);
jTextField2.setBounds(64, 48, 121, 24);
jTextField2.setText("Textfeld");
cp.add(jTextField2);
jTextField3.setBounds(192, 48, 121, 24);
jTextField3.setText("Textfeld");
cp.add(jTextField3);
jTextField4.setBounds(320, 48, 121, 24);
jTextField4.setText("Textfeld");
cp.add(jTextField4);
jTextField6.setBounds(600, 48, 121, 24);
jTextField6.setText("Textfeld");
cp.add(jTextField6);
jComboBox1.setBounds(448, 48, 145, 24);
cp.add(jComboBox1);
for (int i = 0; i < 50; i++) {
jTextField1_1[i] = new JTextField();
jTextField2_1[i] = new JTextField();
jTextField3_1[i] = new JTextField();
jTextField4_1[i] = new JTextField();
jComboBox1_1[i] = new JComboBox(jComboBox1Daten);
jTextField5_1[i] = new JTextField();
jButton1_1[i] = new JButton();
}
int akt_position = 48;
for (int i = 0; i < 50; i++) {
akt_position += 32;
jTextField1_1[i].setBounds(16, akt_position,41, 24);
jTextField1_1[i].setText("Textfeld");
jTextField2_1[i].setBounds(64, akt_position, 121, 24);
jTextField2_1[i].setText("Textfeld");
jTextField3_1[i].setBounds(192, akt_position, 121, 24);
jTextField3_1[i].setText("Textfeld");
jTextField4_1[i].setBounds(320, akt_position, 121, 24);
jTextField4_1[i].setText("Textfeld");
jTextField5_1[i].setBounds(600, akt_position, 121, 24);
jTextField5_1[i].setText("Textfeld");
jComboBox1_1[i].setBounds(448, akt_position, 145, 24);
jButton1_1[i].setBounds(728, akt_position, 120, 25);
jButton1_1[i].setText("Button");
jButton1_1[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
neueZeile(getZeilenNummer());
}
});
}
jLabel1.setBounds(16, 32, 44, 16);
jLabel1.setText("Label");
jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel1);
jLabel2.setBounds(64, 32, 124, 16);
jLabel2.setText("Label");
jLabel2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel2);
jLabel3.setBounds(192, 32, 124, 16);
jLabel3.setText("Label");
jLabel3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel3);
jLabel4.setBounds(320, 32, 124, 16);
jLabel4.setText("Label");
jLabel4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel4);
jLabel5.setBounds(448, 32, 148, 16);
jLabel5.setText("Label");
jLabel5.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel5);
jLabel6.setBounds(600, 32, 124, 16);
jLabel6.setText("Label");
jLabel6.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(jLabel6);
jButton1.setBounds(728, 48, 120, 25);
jButton1.setText("Button");
cp.add(jButton1);
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1ActionPerformed(evt);
neueZeile(getZeilenNummer());
}
});
// Ende Komponenten
setResizable(true);
setVisible(true);
}
// Anfang Ereignisprozeduren
public void jButton1ActionPerformed(ActionEvent evt) {
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
new example("example");
}
}
package table;
/*
* TableButtons.java
* Author: Zafir Anjum / André Uhres
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class TableButtons extends JFrame{
private JTable table;
private String[] columnNames = {
"title 1", "title 2", "title 3", "title 4", "title 5", "title 6", "title 7"
};
private DefaultTableModel model;
private int id;
public TableButtons(){
super("Table Buttons");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(800, 600);
setLocationRelativeTo(null);
model = new DefaultTableModel(columnNames, 0);
table = new JTable(model) {
public TableCellRenderer getCellRenderer(int row, int column) {
TableColumn tableColumn = getColumnModel().getColumn(column);
TableCellRenderer renderer = tableColumn.getCellRenderer();
if (renderer == null) {
Class c = getColumnClass(column);
if( c.equals(Object.class) ) {
Object o = getValueAt(row,column);
if( o != null )
c = getValueAt(row,column).getClass();
}
renderer = getDefaultRenderer(c);
}
return renderer;
}
public TableCellEditor getCellEditor(int row, int column) {
TableColumn tableColumn = getColumnModel().getColumn(column);
TableCellEditor editor = tableColumn.getCellEditor();
if (editor == null) {
Class c = getColumnClass(column);
if( c.equals(Object.class) ) {
Object o = getValueAt(row,column);
if( o != null )
c = getValueAt(row,column).getClass();
}
editor = getDefaultEditor(c);
}
return editor;
}
};
neueZeile(0);
table.setDefaultRenderer( JComponent.class, new JComponentCellRenderer() );
table.setDefaultEditor( JComponent.class, new JComponentCellEditor() );
table.setRowHeight(25);
add( new JScrollPane(table) );
}
private void neueZeile(int row){
Vector rowData = new Vector();
// Buttons
JButton btn1 = new JButton("Neue Zeile");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
neueZeile(table.getSelectedRow()+1);
}
});
}
});
String[] items = {"Item 1", "Item 2", "Item 3"};
final JComboBox btn2 = new JComboBox(items);
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
System.out.println(btn2.getSelectedItem()+" row: "+table.getSelectedRow());
}
});
}
});
rowData.add(""+id++);
rowData.add("");
rowData.add("");
rowData.add("");
rowData.add(btn2);
rowData.add("");
rowData.add(btn1);
model.insertRow(row, rowData);
}
public static void main(final String[] args) {new TableButtons().setVisible(true);}
}
class JComponentCellRenderer implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
return (JComponent)value;
}
}
class JComponentCellEditor implements TableCellEditor, Serializable {
protected EventListenerList listenerList = new EventListenerList();
transient protected ChangeEvent changeEvent = null;
protected JComponent editorComponent = null;
public Component getComponent() {
return editorComponent;
}
public Object getCellEditorValue() {
return editorComponent;
}
public boolean isCellEditable(EventObject anEvent) {
return true;
}
public boolean shouldSelectCell(EventObject anEvent) {
if( editorComponent != null && anEvent instanceof MouseEvent
&& ((MouseEvent)anEvent).getID() == MouseEvent.MOUSE_PRESSED ) {
Component dispatchComponent = SwingUtilities.getDeepestComponentAt(editorComponent, 3, 3 );
MouseEvent e = (MouseEvent)anEvent;
MouseEvent e2 = new MouseEvent( dispatchComponent, MouseEvent.MOUSE_RELEASED,
e.getWhen() + 100000, e.getModifiers(), 3, 3, e.getClickCount(),
e.isPopupTrigger() );
dispatchComponent.dispatchEvent(e2);
e2 = new MouseEvent( dispatchComponent, MouseEvent.MOUSE_CLICKED,
e.getWhen() + 100001, e.getModifiers(), 3, 3, 1,
e.isPopupTrigger() );
dispatchComponent.dispatchEvent(e2);
}
return true;
}
public boolean stopCellEditing() {
fireEditingStopped();
return true;
}
public void cancelCellEditing() {
fireEditingCanceled();
}
public void addCellEditorListener(CellEditorListener l) {
listenerList.add(CellEditorListener.class, l);
}
public void removeCellEditorListener(CellEditorListener l) {
listenerList.remove(CellEditorListener.class, l);
}
protected void fireEditingStopped() {
Object[] listeners = listenerList.getListenerList();
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==CellEditorListener.class) {
// Lazily create the event:
if (changeEvent == null)
changeEvent = new ChangeEvent(this);
((CellEditorListener)listeners[i+1]).editingStopped(changeEvent);
}
}
}
protected void fireEditingCanceled() {
// Guaranteed to return a non-null array
Object[] listeners = listenerList.getListenerList();
// Process the listeners last to first, notifying
// those that are interested in this event
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==CellEditorListener.class) {
// Lazily create the event:
if (changeEvent == null)
changeEvent = new ChangeEvent(this);
((CellEditorListener)listeners[i+1]).editingCanceled(changeEvent);
}
}
}
// implements TableCellEditor
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
editorComponent = (JComponent)value;
return editorComponent;
}
}