java set null6_java - 调用setText()[duplicate]时出现NullPointerException - 堆栈内存溢出...

(我的英语不好。)

我是javafx的新手,这是我第一次发帖到论坛。

我有一个关于剧院预订的项目。 我的程序中有3个影院,我使用标签在每个影院中显示电影数据但是在调用setText()时我得到NullPointerException 。

我检查了我的fx:controller和fx:id ,它没关系。 我还尝试从标签打印getText()并得到相同的错误。 (我已经在标签上设置了“没有电影可用”的文字。)

这是我的代码

主控制器:

package movie.view;

import java.io.IOException;

import javafx.fxml.FXML;

import javafx.scene.control.Label;

import movie.Main;

public class MainPageController {

private Main main;

@FXML public Label theaterData1;

@FXML public Label theaterData2;

@FXML public Label theaterData3;

private String display;

public MainPageController() {}

@FXML

private void goLogInPage() throws IOException{

main.showLogInPageScene();

}

public void recieveData(String data)

{

display = data;

}

@FXML

public void setDataForTheater1()

{

theaterData1.setText(display);

}

@FXML

public void setDataForTheater2()

{

theaterData2.setText(display);

}

@FXML

public void setDataForTheater3()

{

theaterData3.setText(display);

}

}

MainView FXML:

我在这里得到NullPointerException theaterData1.setText(display);

任何帮助将不胜感激,请解释为什么会出现此错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我了解你的问题。你想知道如何使用Java构建一个简单的界面通讯录。 首先,你需要选择一个Java GUI库,比如Swing或JavaFX。在这个例子中,我将使用Swing。 接下来,你需要创建一个通讯录类,该类将存储联系人的信息。你可以使用Java集合框架中的HashMap来存储联系人信息,其中键是联系人的名称,值是联系人的详细信息。 下面是一个简单的通讯录类的示例代码: ``` import java.util.HashMap; public class AddressBook { private HashMap<String, String> contacts; public AddressBook() { contacts = new HashMap<String, String>(); } public void addContact(String name, String info) { contacts.put(name, info); } public String getContactInfo(String name) { return contacts.get(name); } public void removeContact(String name) { contacts.remove(name); } } ``` 现在,你需要创建一个图形用户界面来与通讯录类交互。你可以使用Swing库中的JFrame、JPanel、JButton等组件来创建界面。 下面是一个简单的通讯录GUI界面的示例代码: ``` import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AddressBookGUI extends JFrame { private AddressBook addressBook; private JTextArea displayArea; private JTextField nameField, infoField; public AddressBookGUI() { super("Address Book"); addressBook = new AddressBook(); JPanel inputPanel = new JPanel(new GridLayout(3, 2)); inputPanel.add(new JLabel("Name:")); nameField = new JTextField(); inputPanel.add(nameField); inputPanel.add(new JLabel("Info:")); infoField = new JTextField(); inputPanel.add(infoField); JButton addButton = new JButton("Add"); addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String name = nameField.getText(); String info = infoField.getText(); addressBook.addContact(name, info); displayArea.append("Added contact: " + name + "\n"); nameField.setText(""); infoField.setText(""); } }); JButton removeButton = new JButton("Remove"); removeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String name = nameField.getText(); addressBook.removeContact(name); displayArea.append("Removed contact: " + name + "\n"); nameField.setText(""); infoField.setText(""); } }); JPanel buttonPanel = new JPanel(new GridLayout(1, 2)); buttonPanel.add(addButton); buttonPanel.add(removeButton); displayArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(displayArea); getContentPane().add(inputPanel, BorderLayout.NORTH); getContentPane().add(buttonPanel, BorderLayout.CENTER); getContentPane().add(scrollPane, BorderLayout.SOUTH); setSize(400, 300); setVisible(true); } public static void main(String[] args) { AddressBookGUI gui = new AddressBookGUI(); } } ``` 在这个GUI中,你可以输入联系人的名称和详细信息,并使用“添加”按钮将它们添加到通讯录中。你还可以使用“删除”按钮删除现有联系人。 当你点击“添加”或“删除”按钮,GUI将调用通讯录类的方法来更新通讯录。在更新通讯录后,GUI会将操作结果显示在文本区域中。 这只是一个简单的通讯录GUI的例子,你可以根据需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值