Hallo Leute,
bin neu hier und versuche mich in JAVA. Habe ein USB-Experimentierinterface und möchte eine Oberfläche in Java schreiben. Soweit alles gut geklappt, ich kann die IO's einlesen bzw. beschreiben.
Nun möchte ich folgendes realisieren:
Wenn ich einen Button drücke, soll das Programm 10 sec. warten. In dieser Zeit soll es aber den Analogeingang ständig einlesen und den Wert in einem Feld Anzeigen. Erst wenn die Zeit um ist, soll der Wert auch "einfrieren". Wenn ich sleep verwende friert mir aber der gesamte Thread ein und nach den 10 sec. wird der Wert ausgelesen und geschrieben. Habe mal ein Bsp. dazu geschrieben.
T1 ist die Klasse wo das Interface angesprochen wird.
Kann mir da evtl. jemand weiterhelfen?
Danke schon mal im Voraus
bin neu hier und versuche mich in JAVA. Habe ein USB-Experimentierinterface und möchte eine Oberfläche in Java schreiben. Soweit alles gut geklappt, ich kann die IO's einlesen bzw. beschreiben.
Nun möchte ich folgendes realisieren:
Wenn ich einen Button drücke, soll das Programm 10 sec. warten. In dieser Zeit soll es aber den Analogeingang ständig einlesen und den Wert in einem Feld Anzeigen. Erst wenn die Zeit um ist, soll der Wert auch "einfrieren". Wenn ich sleep verwende friert mir aber der gesamte Thread ein und nach den 10 sec. wird der Wert ausgelesen und geschrieben. Habe mal ein Bsp. dazu geschrieben.
T1 ist die Klasse wo das Interface angesprochen wird.
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class test extends javax.swing.JFrame
{
private JButton button1;
private JPanel panelButton;
private JLabel anzeige;
public T1 jv= new T1();
public test()
{
super("Fenster");
setLocation(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout(5,5));
button1 = new JButton("Button 1");
panelButton = new JPanel(new GridLayout(3,1));
panelButton.add(button1);
addButtonListener(button1);
anzeige = new JLabel("Button klicken");
getContentPane().add(anzeige);
getContentPane().add(BorderLayout.WEST, panelButton);
pack();
setVisible(true);
}
public static void main(String[] args)
{
test g = new test();
}
private void addButtonListener(JButton b)
{
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
messung();
}
});
}
private void messung()
{
jv.OpenDevice(0);
try {
Thread.sleep(1000);
anzeige.setText(String.valueOf(jv.ReadAnalogChannel(2)));
jv.OutputAnalogChannel(2, jv.ReadAnalogChannel(2));
jv.CloseDevice();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Kann mir da evtl. jemand weiterhelfen?
Danke schon mal im Voraus