Hi Leute,
Ich wollte gerne eine Instanz einer Klasse im Thread laufen lassen. Ist dies möglich ? Ich ein GUI der Test heißt und dann habe ich noch ein anderes Program das PhoneToSender im hintergrund laufen soll. Da ich Strings von dem PhoneToSender lesen werde muss es immer ausgelesen werden. Ist da Sinnvoll einen Thread einzubauen ?
Wenn ihr mir behilflich sein könntet, würde ich mich sehr freuen.
Danke
Ich wollte gerne eine Instanz einer Klasse im Thread laufen lassen. Ist dies möglich ? Ich ein GUI der Test heißt und dann habe ich noch ein anderes Program das PhoneToSender im hintergrund laufen soll. Da ich Strings von dem PhoneToSender lesen werde muss es immer ausgelesen werden. Ist da Sinnvoll einen Thread einzubauen ?
Wenn ihr mir behilflich sein könntet, würde ich mich sehr freuen.
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/**
*
* @author SerSa
*/
public class Test extends JFrame implements ActionListener{
public static final DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
public final JButton btnclose = new JButton("Close");
public final JTextArea txtarea = new JTextArea(5,10);
public Test() throws Exception {
super("NFC Attendance System");
String[] columnNames = {"Student ID",
"Student Name",
"Lecture Room",
"Date",
"Time"};
Object[][] data = { };
final JTable table = new JTable(data, columnNames);
JScrollPane tableContainer = new JScrollPane(table);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
final JPanel north = new JPanel();
final JPanel south = new JPanel();
final JPanel east = new JPanel();
final JPanel west = new JPanel();
final JPanel center = new JPanel();
add("North", north);
add("South", south);
add("East", east);
add("West", west);
add("Center", center);
north.setBorder(BorderFactory.createTitledBorder("Date&Time Display"));
final BoxLayout layout = new BoxLayout(north, BoxLayout.X_AXIS);
final JLabel datetime = new JLabel("");
datetime.setFont(new Font("Verdana", Font.PLAIN, 50));
north.add(datetime);
center.setBorder(BorderFactory.createTitledBorder("NFC Record"));
center.setLayout(new BorderLayout());
center.add(tableContainer, BorderLayout.CENTER);
// table.setText(IsmbSnepConnection.received);
south.setBorder(BorderFactory.createTitledBorder("Selection"));
south.add(btnclose);
final BoxLayout la = new BoxLayout(south, BoxLayout.X_AXIS);
btnclose.addActionListener(this);
setSize(700, 600);
setVisible(true);
new Timer().scheduleAtFixedRate(new TimerTask()
{
@Override
public void run() {
datetime.setText(dateFormat.format(new Date()));
}
}, 0, 100);
}
public static void main(String[] args) throws Exception {
final Test me = new Test();
PhoneToSender f = new PhoneToSender(); // Dies im Thread laufen lassen ************
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()== btnclose)
{
System.exit(0);
}
}
}
Danke