Auslesen von NFC und dann im JTextArea anzeigen ?

Code46

Erfahrenes Mitglied
Hi Leute,

ich habe ein Problem mit dem Anzeigen des Outputs in einem JTextArea. Durch System.out.println() sehe ich das Output, jedoch nicht im JTextArea. Wisst ihr wie ich das anzeigen könnte ?

Ich speicher den String in einer Variable (studentDetails), die ich aus einer anderen Klasse rufe und dann in den Textarea hinzufüge (textarea.append(studentDetails))

Hier ist mein Code:

Code:
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;


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 JButton btnrefresh = new JButton("Refresh");
    public final JTextArea txtarea = new JTextArea(5,20);
    public final String studentDetails = (IsmbSnepConnection.received);
  
 public Test() throws Exception {
        super("NFC Attendance System"); 
        
        
        
        String[] columnNames = {"Student ID",
                                "Student Name",
                                "Lecture Room",
                                "Date",
                                "Time"};

 
        Object[][] data = {{"000535429","John Smith","KW315","55","6666"}};
        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);
        txtarea.append(studentDetails);
        north.add(txtarea);

        
        center.setBorder(BorderFactory.createTitledBorder("NFC Record"));
        center.setLayout(new BorderLayout());
        center.add(tableContainer, BorderLayout.CENTER);
                    
        
        south.setBorder(BorderFactory.createTitledBorder("Selection"));
        south.add(btnclose);
        south.add(btnrefresh);
        final BoxLayout la = new BoxLayout(south, BoxLayout.X_AXIS);
        
        btnclose.addActionListener(this);
        btnrefresh.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();
        
        
        
  }

    
    @Override
    public void actionPerformed(ActionEvent e) {

            if(e.getSource()== btnclose)
            {
                System.exit(0);
            }
       

        
       
    }
}
 
Zuletzt bearbeitet:

Code46

Erfahrenes Mitglied
Nach auslesen von NFC String im JTextArea anzeigen ?

Hi Leute,

ich habe ein Problem mit dem Anzeigen des Outputs in einem JTextArea. Durch System.out.println() sehe ich das Output, jedoch nicht im JTextArea. Wisst ihr wie ich das anzeigen könnte ?

Ich speicher den String in einer Variable (studentDetails), die ich aus einer anderen Klasse rufe und dann in den Textarea hinzufüge (textarea.append(studentDetails))

Hier ist mein Code:
Code:
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;
 
 
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 JButton btnrefresh = new JButton("Refresh");
    public final JTextArea txtarea = new JTextArea(5,20);
    public final String studentDetails = (IsmbSnepConnection.received);
  
 public Test() throws Exception {
        super("NFC Attendance System"); 
        
        
        
        String[] columnNames = {"Student ID",
                                "Student Name",
                                "Lecture Room",
                                "Date",
                                "Time"};
 
 
        Object[][] data = {{"000535429","John Smith","KW315","55","6666"}};
        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);
        txtarea.append(studentDetails);
        north.add(txtarea);
 
        
        center.setBorder(BorderFactory.createTitledBorder("NFC Record"));
        center.setLayout(new BorderLayout());
        center.add(tableContainer, BorderLayout.CENTER);
                    
        
        south.setBorder(BorderFactory.createTitledBorder("Selection"));
        south.add(btnclose);
        south.add(btnrefresh);
        final BoxLayout la = new BoxLayout(south, BoxLayout.X_AXIS);
        
        btnclose.addActionListener(this);
        btnrefresh.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();
        
        
        
  }
 
    
    @Override
    public void actionPerformed(ActionEvent e) {
 
            if(e.getSource()== btnclose)
            {
                System.exit(0);
            }
       
 
        
       
    }
}
 

takidoso

Erfahrenes Mitglied
Ich vermue mal, dass Du deine Textarea in ein JScrollPanel legen musst ind nicht in ein JPanel. Ich kann mir vorstellen, dass Du dann umindest das Ding scrollen kannst.
auf der anderen Seite kommen mi Deine Layouts etwas arg bunt gemischt vor.
Vielleicht Solltest Du Dir das Konzept der layoutanager noch etwas vertiefen.

Takidoso