【问题标题】:How do I transfer the data in my JTextField to a JLabel?如何将 JTextField 中的数据传输到 JLabel?
【发布时间】:2013-12-14 22:55:40
【问题描述】:

所以我们应该为我们的航空公司制作一个预订屏幕。在用户输入他/她的信息并单击“保留”后,我的代码需要在单独的框架中向她显示信息。我已经设置了框架,我只需要将 JTextField 中的信息传输到 JLabel 上的框架。我听说我需要把它变成一个变量,这样我就可以在多个地方使用它。我是 Java 新手,所以请不要使用我可能不熟悉的词。谢谢,这是我的代码。我有 3 节课。

头等舱:

import javax.swing.JFrame;
import javax.swing.JPanel;
public class TicketMan {
public static void main(String[] args) {
    JFrame frame = new JFrame ("Airport");
    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    TicketManBot panel = new TicketManBot();
    frame.getContentPane().add(panel);

    frame.pack();
    frame.setVisible(true); }    }

第二类:(字段所在的类。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Random;


public class TicketManBot extends JPanel {


private JLabel name;
private JLabel dest;
private JLabel depc;
private JLabel dept;
private JLabel seat;
private JButton b;


Random rand = new Random();

private JTextField namef, destf, depcf, deptf;


public TicketManBot()

{



name = new JLabel ("Enter passenger's name:");
dest = new JLabel ("Destination: ");
depc = new JLabel ("Departure city: ");
dept = new JLabel ("Departure time: ");
seat = new JLabel ("Seat Number: " + rand.nextInt(100));

b = new JButton ("Make Reservation");

b.addActionListener (new results());
// the fields I need to move
namef = new JTextField (10);
destf = new JTextField (10);
depcf = new JTextField (10);
deptf = new JTextField (10);        

 add (name);
 add (namef);
 add (dest);
 add (destf);
 add (depc);
 add (depcf);
 add (dept);
 add (deptf);
 add (seat);
 add (b);


 setPreferredSize (new Dimension(200, 300));
 setBackground (Color.gray);         
}
private class results implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
    int  resultLabel;

    String text = namef.getText();      

    JFrame results = new JFrame("Thank you for flying with JJ Air"); 
    results.setVisible(true);
    results.setSize (200, 300);
 // I need to move the fields up there in front of these VVVVVV
    JLabel nr = new JLabel ("Name of the passenger:");
    JLabel dr = new JLabel ("Destination:");
    JLabel depr = new JLabel ("Departure city:");
    JLabel dpr = new JLabel ("Departure time:");
    JLabel sr = new JLabel ("Seat number:");
    JLabel t = new JLabel ("Thank you for flying with us");
    JLabel label = new JLabel ("");
    JPanel panel = new JPanel ();
    results.add(panel);
    panel.add (nr); 
    panel.add (dr);
    panel.add (depr);
    panel.add (dpr);
    panel.add (sr);
    panel.add (t);
}
}
}

第三类:

import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;

public class results extends JPanel {

}

【问题讨论】:

  • 1) 为了尽快获得更好的帮助,请发帖 SSCCE。 2) 源代码中的一个空白行总是就足够了。 { 之后或} 之前的空行通常也是多余的。
  • " I'm new to Java so please don't use words I might not be familiar with." -- 你能列出你可能不熟悉的词吗?也许更好的是让您简单地要求澄清任何让您感到困惑的答案。 ://

标签: java swing jlabel jtextfield


【解决方案1】:
jLabel.setText(jTextField.getText());

其中 jLabel 是您的标签,而 jTextField 是您的文本字段。

例如:

JLabel nr = new JLabel ("Name of the passenger:"+Namef.getText());

顺便说一句,您应该阅读 Java 编码风格指南,这将有助于使您的代码对其他人更具可读性。

【讨论】:

  • 但是我到底应该在哪里添加呢?
  • 例如,我需要用户在“Namef”中输入的内容与乘客姓名后的“nr”共享。你能给我举个例子吗。我真的很不擅长这个。对不起
  • 我刚刚将您的示例添加到代码的那部分,它说 namef 无法解析。
  • 抱歉,我无法为您编写代码。根据您在上面发布的内容,它应该可以工作,您需要检查变量名称等是否匹配。
  • 这是我的问题。我不知道如何获取变量名。
【解决方案2】:

Jlabel 是您要设置文本的标签。 jtextField 是您要从中获取信息的 tetxfield

jLabel.setText(jTextField.getText());

您还可以做的,可能是将所有文本字段中的所有信息收集到数组中,然后使用它在所需的 jLabel 中显示数组中的任何内容。或者甚至更好地使用 Array 在漂亮的表格中显示数据:)

【讨论】:

  • 但是我到底应该在哪里添加呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多