【发布时间】:2019-10-19 18:15:59
【问题描述】:
作为我们第二学期项目的一部分,我们必须用 Java 创建一个逃脱游戏。
我们已经设法在控制台中显示我们的文本,但是,我们不能在我们的窗口(在另一个类中)中显示相同的文本。 我们知道我们必须使用 setText(),因为它是一个 TextArea,但我们不知道该怎么做。
private JTextArea texte;
private JButton button;
private JProgressBar bar;
public IHM() {
this.window = new JFrame("Esc'App Game");
this.window.setContentPane(this.panelCreation());
this.window.pack();
this.window.setVisible(true);
}
public JPanel panelCreation() {
JPanel panel = new JPanel();
this.texte = new JTextArea("Erreur affichage de texte");
texte.setText(""); // <- here
panel.add(texte);
texte.getText();
this.window.add(panel);
return panel;
}
还有我们的主要:
// Ask for the pseudo
Player p1 = new Player();
System.out.println(p1.getPseudo());
// change System.out to setText() ?
// Ask for the theme
Player.getTheme();
// Creation of a new Theme
Theme t1 = new Theme(Player.myTheme);
目前,我们没有任何结果或任何错误消息,因为我们没有任何想法。
【问题讨论】:
-
而不是做:System.out.println(...),做类似的事情:myTextField.setText(...)
-
当您提到它是另一个类时,您可以考虑将您的文本区域作为公共字段而不是私有字段。这样你就可以通过 yourClass.texte.setText("...");但是,最好的方法是为此字段创建一些 get/set 访问器。
-
@AntonioCalvente 糟糕的建议。他最好添加一个方法,这样他就不会将他的文本字段的完全访问权限授予不应该拥有它的类
-
@Stultuske 这就是为什么我添加了“但是”部分以避免公共访问:) 它仍然是一个学校项目,最好从一些可行的东西开始,然后改进它 IMO(这也是我提出它的原因作为评论而不是答案)
-
@AntonioCalvente 我已经尝试过这种方法(yourClass.texte.setText("...")),但在这种情况下它不起作用:(
标签: java swing class jtextarea settext