Hallo Leute,
Bin relativ neu in Java (habe früher C# programmiert) und schon nervt mich das ganze GUI Zeug....
Habe jetzt schon viele Forenbeiträge gelesen aber konnte mein Problem nicht lösen... Also mein letzter Ausweg
Also mein Problem JTable aktualisiert sich nicht und bleibt leer.
Die wichtigen Bestandteile meiner Hauptklasse mit der GUI:
Klasse WriteSignals... Daten werden an Main Klasse übergeben...
Vielleicht hat ja jemand von euch Zeit mir zu helfen wäre ganz nett....
Falls sich jemand fragt, was das Ganze sein soll....
Wird ein Steurungprogramm für eine Wlan-Antenne, die vertikal und horizontal drehbar ist und sich automatisch den besten Empfang sucht...
lg Magublafix
PS: Ich entschuldige mich gleich für die hässliche Programmierung...
Bin relativ neu in Java (habe früher C# programmiert) und schon nervt mich das ganze GUI Zeug....
Habe jetzt schon viele Forenbeiträge gelesen aber konnte mein Problem nicht lösen... Also mein letzter Ausweg
Also mein Problem JTable aktualisiert sich nicht und bleibt leer.
Die wichtigen Bestandteile meiner Hauptklasse mit der GUI:
Java:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;
import org.dyno.visual.swing.layouts.Trailing;
public class Main extends JFrame {
private static final long serialVersionUID = 1L;
private JButton Manuel;
DefaultTableModel model = new DefaultTableModel();
int row = 0;
private JTable jTable0 = new JTable(model);
private JScrollPane jScrollPane0;
private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
[B]public Main() {
createTable();
initComponents();
WriteSignals ws = new WriteSignals();
ws.start();
}
public Main(String Bssid, String Ssid, int Signal)
{
addData(Bssid,Ssid,Signal);
}
private void createTable()
{
model.addColumn("Bssid");
model.addColumn("Ssid");
model.addColumn("Signal");
}
public void addData(String Bssid, String Ssid, int Signal)
{
Vector<String> addData = new Vector<String>();
addData.add(Bssid);
addData.add(Ssid);
addData.add(Signal);
model.addRow(addData);
model.fireTableStructureChanged();
model.fireTableDataChanged();
}[/B]
private void initComponents() {
setLayout(new GroupLayout());
add(getManuel(), new Constraints(new Leading(9, 12, 12), new Leading(58, 10, 10)));
add(getJScrollPane0(), new Constraints(new Trailing(12, 381, 10, 10), new Leading(7, 187, 10, 10)));
setSize(541, 377);
}
private JScrollPane getJScrollPane0() {
if (jScrollPane0 == null) {
jScrollPane0 = new JScrollPane();
jScrollPane0.setViewportView(getJTable0());
}
return jScrollPane0;
}
private JTable getJTable0() {
if (jTable0 == null) {
jTable0 = new JTable();
jTable0.setModel(new DefaultTableModel(new Object[][] {}, new String[] {}) {
private static final long serialVersionUID = 1L;
Class<?>[] types = new Class<?>[] { Object.class, Object.class, };
public Class<?> getColumnClass(int columnIndex) {
return types[columnIndex];
}
});
jTable0.setAutoCreateColumnsFromModel(false);
}
return jTable0;
}
private static void installLnF() {
try {
String lnfClassname = PREFERRED_LOOK_AND_FEEL;
if (lnfClassname == null)
lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lnfClassname);
} catch (Exception e) {
System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
+ " on this platform:" + e.getMessage());
}
}
/**
* Main entry of the class.
* Note: This class is only created so that you can easily preview the result at runtime.
* It is not expected to be managed by the designer.
* You can modify it as you like.
*/
public static void main(String[] args) {
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Main frame = new Main();
frame.setDefaultCloseOperation(Main.EXIT_ON_CLOSE);
frame.setTitle("Main");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
Klasse WriteSignals... Daten werden an Main Klasse übergeben...
Java:
public class WriteSignals extends Thread {
String[] Bssid = new String[100];
String[] Ssid = new String[100];
int[] SignalStrength = new int[100];
int numberOfReadings = 0;
public WriteSignals()
{
}
public void getData()
{
Signal s = new Signal();
Bssid = s.getBssid();
Ssid = s.getSsid();
SignalStrength = s.getSignalStrength();
numberOfReadings = s.getNumberOfSignals();
}
public void run() {
while(true)
{
getData();
for(int i=0; i < numberOfReadings; i++)
{
System.out.println(Bssid[i]+" "+Ssid[i]+" "+SignalStrength[i]);
[B]Main main = new Main(Bssid[i], Ssid[i], SignalStrength[i]);[/B]
try{
Thread.currentThread().sleep(1000);
}catch(Exception ex){}
}
}
/*try{
Thread.currentThread().sleep(1000);
}catch(Exception e){}*/
}
}
Vielleicht hat ja jemand von euch Zeit mir zu helfen wäre ganz nett....
Falls sich jemand fragt, was das Ganze sein soll....
Wird ein Steurungprogramm für eine Wlan-Antenne, die vertikal und horizontal drehbar ist und sich automatisch den besten Empfang sucht...
lg Magublafix
PS: Ich entschuldige mich gleich für die hässliche Programmierung...
Zuletzt bearbeitet von einem Moderator: