# Werte in Tabelle einfügen!



## SirBaros (29. Apr 2006)

Hallo!Ich habe ein Problem! Ich hab ein Berechungsfenster und möchte das Ergebnis der Berechnung in eine Tabelle einfügen lassen und bei weiteren berechnungen die Ergebnisse  in die weiteren Felder einfügen lassen!Später möchte ich die Werte aus der Tabelle noch weiterverwenden!

Hier ist COde!bitte um hilfe!!


```
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class BeB extends JFrame {

JTextField s, s1, s2;
JLabel l1,l2,l3,l4,l5,l6;
JButton bt,bt1,bt2;
JPanel cv,cv2,cv3,cv4;
int s13;
boolean start = true;


public BeB(){
l6= new JLabel("Beschreibung einer Bewegung");
l6.setFont(new Font("dialog", Font.BOLD, 15)); 
cv= new JPanel();
cv2= new JPanel();
bt= new JButton("Berechnen");
l1=new JLabel("Geben Sie die Werte in die Formel ein:");
l2=new JLabel("s1 + s2 = ?s    positiv ");
l3=new JLabel("+");
l4=new JLabel("=");
l5=new JLabel("Nur noch Berechnen drücken :) ");
s = new JTextField(5);
s1 = new JTextField(5);
s2 = new JTextField(5);
bt1= new JButton("Tabelle");
bt2= new JButton("Zur Tabelle hinzufügen");
cv3= new JPanel();
cv4=new JPanel();

Container ct = getContentPane();
ct.setLayout(new FlowLayout());
cv.setPreferredSize(new Dimension(700, 2)); 

cv.setBackground(Color.BLACK);
cv2.setPreferredSize(new Dimension(700, 2)); 

cv2.setBackground(Color.BLACK);

ct.add(l6);
ct.add(cv2);
ct.add(l1);
ct.add(l2);
ct.add(cv);
ct.add(s);
ct.add(l3);
ct.add(s1);
ct.add(l4);
ct.add(s2);
ct.add(bt);
ct.add(l5);
ct.add(bt1);


bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int ts=0, ts1, ts2;


if (s2.getText().equals("")){
ts= Integer.parseInt(s.getText());
ts1= Integer.parseInt(s1.getText());
s2.setText((ts+ts1)+"");
l5.setText("?s ist: "+(ts+ts1));

}
if (s1.getText().equals("")){
ts= Integer.parseInt(s.getText());
ts2= Integer.parseInt(s2.getText());
s1.setText((ts2-ts)+"");
l5.setText("s2 ist: "+(ts2-ts));
}
if (s.getText().equals("")){
ts1= Integer.parseInt(s1.getText());
ts2= Integer.parseInt(s2.getText());
s.setText((ts2-ts1)+"");
l5.setText("s1 ist: "+(ts2-ts1));
}



}
});
bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){


if (start){
cv3.setPreferredSize(new Dimension(700, 4)); 

cv3.setBackground(Color.BLACK);
cv4.setPreferredSize(new Dimension(700, 10)); 


setSize(700,210);

String rowData[][] = { 
      { "x", "","","","","","" }, { "y", "","","","","","" }, 
      
    }; 
    String  columnNames[] = { 
     "","1", "2","3","4","5","6" 
    }; 
    JTable table = new JTable( rowData, columnNames ); 
    
    int tableHeight = table.getRowHeight() *table.getRowCount(); 
    table.setPreferredScrollableViewportSize(new Dimension(350,tableHeight)); 

getContentPane().add(cv4);
getContentPane().add(cv3);
getContentPane().add( new JScrollPane(table));
getContentPane().add(bt2);



show();
start = false;
}



}
});


addWindowListener(new WindowAdapter(){
         
            public void windowClosing(WindowEvent e){
            e.getWindow().dispose();
               }
        });  
}






public static void main(String[] args) {
BeB f= new BeB();

f.setSize(700,150);
f.show();

}
}
```


----------



## michi2 (29. Apr 2006)

Einrücken, verwenden von Arrays und ne Beschreibung was genau dein Problem ist währe verdammte nützlich!!!


----------



## SirBaros (29. Apr 2006)

also in dem pgoramm ist eine Berechnung von Zwei Werten erhalten und ich möchte das ergebnis per button klich"in tabelle hinzufügen" in die Tabelle setzen!


----------



## michi2 (29. Apr 2006)

Jtable.	setValueAt(Object aValue, int row, int column)
Object o = Jtable.	getValueAt(int row, int column)

Und java.awt.Window.show() solltest du nicht mehr verwenden: *Deprecated*


----------



## SirBaros (29. Apr 2006)

kannst einem beispiel mit meinem Code machen, ich raffs nämlich net!!! was ich damit machen soll!


----------



## michi2 (29. Apr 2006)

Du hast die 2 Wete in zwei Variablen a und b, du hast eine Variabler zaehler, die am Anfang 1 ist, in den Actionlistener schreibst du dann so was wie:

```
meinetabelle.setValueAt(a, 0, zaeler);
meinetabelle.setValueAt(a, 1, zaeler);
zaeler++;
```

PS: weis jetzt nicht wie das mit dem Tabellen-Titel ist, glaub aber der wird nicht mitgezählt, ausprobieren oder in der API nachschauen...


----------



## L-ectron-X (29. Apr 2006)

Guck mal in die FAQs, da gibts ein absolut heißes JTable-Tutorial von Beni.


----------



## André Uhres (29. Apr 2006)

Mit ( (DefaultTableModel)table.getModel() ).addRow(..) fügst du eine neue Zeile hinzu. Mit setValueAt(..) kannst du den Wert einer Zelle setzen. Mit getValueAt(..) kannst du den Wert einer Zelle auslesen. So einfach ist es. Mehr glaub ich braucht man in deinem Fall nicht zu wissen. Wie die Methoden genau arbeiten wird in der entsprechenden Dokumentation und in jedem Javalehrbuch erklärt. Ach ja wir haben hier im Forum ja auch noch die FAQ. Beni sagte mal die seien nicht nur da um Bratwürste zu grillen.


----------



## SirBaros (29. Apr 2006)

er bringt fehler!!! bei setValueAt
	
	
	
	





```
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class BeB extends JFrame {

 JTextField s, s1, s2;
 JLabel l1,l2,l3,l4,l5,l6;
 JButton bt,bt1,bt2;
 JPanel cv,cv2,cv3,cv4;
 int s13;
 boolean start = true;
 int zahl;
 JTable table;
 
 public BeB(){
  l6= new JLabel("Beschreibung einer Bewegung");
  l6.setFont(new Font("dialog", Font.BOLD, 15)); 
  cv= new JPanel();
  cv2= new JPanel();
  bt= new JButton("Berechnen");
  l1=new JLabel("Geben Sie die Werte in die Formel ein:");
  l2=new JLabel("s1 + s2 = ?s    positiv ");
  l3=new JLabel("+");
  l4=new JLabel("=");
  l5=new JLabel("Nur noch Berechnen drücken ");
  s = new JTextField(5);
  s1 = new JTextField(5);
  s2 = new JTextField(5);
  bt1= new JButton("Tabelle");
  bt2= new JButton("Zur Tabelle hinzufügen");
  cv3= new JPanel();
  cv4=new JPanel();

  Container ct = getContentPane();
  ct.setLayout(new FlowLayout());
  cv.setPreferredSize(new Dimension(700, 2)); 

  cv.setBackground(Color.BLACK);
  cv2.setPreferredSize(new Dimension(700, 2)); 
  
  cv2.setBackground(Color.BLACK);
  
  ct.add(l6);
  ct.add(cv2);
  ct.add(l1);
  ct.add(l2);
  ct.add(cv);
  ct.add(s);
  ct.add(l3);
  ct.add(s1);
  ct.add(l4);
  ct.add(s2);
  ct.add(bt);
  ct.add(l5);
  ct.add(bt1);


  bt.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    int ts=0, ts1, ts2;


    if (s2.getText().equals("")){
    ts= Integer.parseInt(s.getText());
    ts1= Integer.parseInt(s1.getText());
    s2.setText((ts+ts1)+"");
    l5.setText("?s ist: "+(ts+ts1));
    
    }
    if (s1.getText().equals("")){
    ts= Integer.parseInt(s.getText());
    ts2= Integer.parseInt(s2.getText());
    s1.setText((ts2-ts)+"");
    l5.setText("s2 ist: "+(ts2-ts));
    }
    if (s.getText().equals("")){
    ts1= Integer.parseInt(s1.getText());
    ts2= Integer.parseInt(s2.getText());
    s.setText((ts2-ts1)+"");
    l5.setText("s1 ist: "+(ts2-ts1));
    }
    
    
    
    }
    });
  bt2.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    
    zahl= Integer.parseInt(s2.getText());
    table.setValueAt(zahl, 0, 0);
   }
  });
  bt1.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    

    if (start){
    cv3.setPreferredSize(new Dimension(700, 4)); 
    
    cv3.setBackground(Color.BLACK);
    cv4.setPreferredSize(new Dimension(700, 10)); 
    
    
    setSize(700,210);
    
    String rowData[][] = { 
          { "x", zahl+"","","","","","" }, { "y", "","","","","","" }, 
          
        }; 
        String  columnNames[] = { 
         "","1", "2","3","4","5","6" 
        }; 
         
        table = new JTable( rowData, columnNames );
        int tableHeight = table.getRowHeight() *table.getRowCount(); 
        table.setPreferredScrollableViewportSize(new Dimension(350,tableHeight)); 
    
    getContentPane().add(cv4);
    getContentPane().add(cv3);
    getContentPane().add( new JScrollPane(table));
    getContentPane().add(bt2);
    
    
    
    show();
    start = false;
    }
    


   }
  });


  addWindowListener(new WindowAdapter(){
         
            public void windowClosing(WindowEvent e){
            e.getWindow().dispose();
               }
        });  
}






 public static void main(String[] args) {
  BeB f= new BeB();

  f.setSize(700,150);
  f.show();

 }
}
```


----------



## michi2 (29. Apr 2006)

Sorry habe ich vergessen muss heisen: table.setValueAt(Integer.toString(zahl), 1, 1);


----------

