我正在NetbeanJava中做一个猜谜游戏。将猜测数字与目标数字进行比较后的结果(消息/字符串文本)没有显示在反馈面板文本区域中。我使用appendText将文本从MainFrame类传递到febackPanel类。但是,按下猜测按钮后文本没有显示在febackPanel中。请帮助我。
大型机。Java语言
public class MainFrame extends JFrame{
FeedbackPanel formPanel;
InputPanel textPanel;
public static int target;
JTextArea ta;
public MainFrame()
{
super("HIgher-Lower Game");
formPanel=new FeedbackPanel();
add(formPanel, BorderLayout.EAST);
textPanel=new InputPanel();
add(textPanel, BorderLayout.WEST);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
formPanel.setFormListener(new FormListener(){
public void formEventOccurred(FormEvent e){
int num = e.getNum();
//int square=num*num;
if (num == target)
{
formPanel.appendText("Congratulations, your guess is correct!");
//formPanel.setText("Congratulations, your guess is correct!");
//ta.setText("Congratulations, your guess is correct!");
//System.out.paMairintln("Congratulations, your guess is correct!");
}
else if (num > target)
//if guess is higher than the target
{
formPanel.appendText("Your guess is higher than the target");
//formPanel.setText("Your guess is higher than the target");
//ta.setText("Your guess is higher than the target");
//System.out.println("Your guess is higher than the target");
}
else if (num < target)
//if guess is lower than the target
{
formPanel.appendText("Your guess is lower than the target");
//formPanel.setText("Your guess is lower than the target");
//ta.setText("Your guess is lower than the target");
//System.out.println("Your guess is lower than the target");
}
//textPanel.appendText(Integer.toString(square));
}
});
textPanel=new InputPanel();
add(textPanel, BorderLayout.WEST);
setSize(300,300);
setVisible(true);
this.pack();
}
public static void main(String[] args) {
Random random = new Random();
target = random.nextInt(100);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MainFrame();
}
});
}
}
输入面板。Java语言
public class InputPanel extends JPanel {
private JLabel label1;
private JTextField tfIn;
private JButton b;
private FormListener formListener;
public FormListener getTextListener() {
return formListener;
}
public void setFormListener(FormListener formListener) {
this.formListener = formListener;
}
public InputPanel() {
GridBagLayout gb=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
gbc.insets=new Insets(5,5,5,5);
setLayout(gb);
setBorder(BorderFactory.createTitledBorder("InputForm"));
label1 = new JLabel ("Enter number [1-100]");
gbc.anchor=GridBagConstraints.FIRST_LINE_END;
gbc.gridx=1;
gbc.gridy=1;
gbc.gridheight=1;
gbc.gridwidth=1;
add(label1,gbc);
tfIn = new JTextField (10);
gbc.gridx=1;
gbc.gridy=2;
gbc.gridheight=1;
gbc.gridwidth=1;
add(tfIn,gbc);
b = new JButton ("Guess");
gbc.anchor=GridBagConstraints.CENTER;
gbc.gridx=1;
gbc.gridy=3;
gbc.gridheight=1;
gbc.gridwidth=2;
add(b,gbc);
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int num = Integer.parseInt(tfIn.getText());
FormEvent ev=new FormEvent(this,num);
if(formListener != null){
formListener.formEventOccurred(ev);
}
}
});
}
}
反馈面板。Java语言
public class FeedbackPanel extends JPanel{
JTextArea ta;
FormListener listen;
public FeedbackPanel(){
setBorder(BorderFactory.createTitledBorder("Feedback"));
setLayout(new BorderLayout());
ta=new JTextArea(5,20);
add(new JScrollPane(ta), BorderLayout.CENTER);
}
public void appendText(String text){
ta.append(text + "\n" + "\r");
}
public void setFormListener(FormListener formListener) {
this.listen = formListener;
}
}
表格vent.java
public class FormEvent extends EventObject{
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public FormEvent(Object source){
super(source);
}
public FormEvent(Object source, int num){
super(source);
this.num=num;
}
}
表格istener.java
public interface FormListener extends EventListener{
public void formEventOccurred(FormEvent e);
}
首先:把这个放在听众面前:
textPanel=new InputPanel();
add(textPanel, BorderLayout.WEST)
第二:您需要在结束时定义电子显示功能
formEventOccurred(FormEvent e)
编辑:我已经删除了用于out.write的for循环,它不是必需的。我在使用字符串数组时使用过它。
问题内容: 我需要帮助弄清楚如何在程序中显示文本,以便它可以在我创建的多边形形状的中间显示“停止”。我想做的是创建一个停车标志。我已经负责创建和显示该停车标志,因此现在只需要在屏幕上显示“停止”即可 } 问题答案: 更换用,并添加到它(多边形后): 关于的Javadoc : StackPane将其子级放在从后到前的堆栈中。子级的z顺序由子级列表的顺序定义,第0个子级是底部,最后一个子级在顶部。如果
本文向大家介绍在Java字符串中最多显示10个字符,包括了在Java字符串中最多显示10个字符的使用技巧和注意事项,需要的朋友参考一下 要在一个字符串中最多显示10个字符,请使用Formatter类。 为Java中的Formatter类导入以下软件包- 创建一个新的Formatter对象- 现在让我们在一个字符串中最多显示10个字符- 以下是一个例子- 示例 输出结果
问题内容: 我们正在TextArea应用程序中使用JavaFX的控件,并尝试将其与 集成在一起-例如,当用户输入词典中没有的错误单词时,该单词将突出显示。 有什么办法可以突出显示控件中的单词吗?我在中没有看到任何选择,因此,如果有人可以建议一种方法? 我想,可能有可能使用组件并用分别为单词加上颜色。但是,这会带来很多不同的拼写检查问题,例如html标签和字数统计。 问题答案: JavaFX Tex
我有一个注册过程,在确认细节上,我正在尝试显示输入的地址,但我似乎不能让它正确显示,我已经尝试了网站上的其他答案,但没有一个似乎是有效的。 代码 HTML 理想情况下,我希望使用,但最初我尝试了一下,找到的答案是使用 这是,它正在填充我的“comp add”。 当用户离开页面时,它会这样做,并按上面所示工作,但我无论如何都无法将其显示为: 添加第1行 添加第2行 城镇 县 BB1 1BB
为什么下面的代码不起作用?它适用于Toast,但不适用于TextView。当我运行程序时,boldName不会显示为粗体,但当我将其设置为祝酒词时,它确实显示为粗体。有人有其他解决办法吗?