0

我需要帮助了解为什么在我退出弹出窗口后按钮和标签不会生效。它几乎就像我需要刷新屏幕?早些时候,我尝试编写一个标签来保存狗的名字,并且在按下按钮后(禁用按钮 w/我没有这样做)并将标签更改为 label=“Dogname”或 Null 和按下示例后的狗名:label = “伙伴”

所以我通过下面的代码和文本字段文本实现了这一点,但我希望它是一个标签,这样用户就不能删除它,什么不能。

为什么我不能用标签做到这一点?留在可变范围内的最佳方法是什么?最后的意思是什么?当我从按钮中删除动作监听器时,它仍然在监听。为什么?我不太了解初始化和实例是否有一个简单的类比可以帮助我解决这个问题?

Java 新手,阅读书籍、教程和指南以获取帮助。我迫不及待地开始利用我的网络知识和 Mysql 的优势开始编程,以获得强大的程序。提前感谢您的帮助。

这是我的第一个程序,它为用户设置的参数生成一个唯一的狗名。简单明了。

我使用最新的 java 和 eclipse。我从头开始编写gui。我了解主类以及如何实现类。java最难的部分是更新新信息的gui,我认为这将是简单的部分。似乎添加布局和面板和框架按钮并让它们更新您的代码正在做的事情似乎有点令人困惑。

除了长代码和新手组织,还有什么技巧可以帮助我学习这个?我已经把//用我自己的话解释了事情的作用和含义,这很有帮助。任何建议将不胜感激。

最后要注意的一件事是我注意到程序员喜欢让其他新手程序员“弄清楚”。在我看来,我认为这不像给出原始答案和帮助那样具有建设性......我从头开始构建了这个程序,从一个好的 4+ tuts 开始,现在我觉得我可以自己编程并使用网络寻求语法帮助. 我不是在寻找任何人来为我的项目编写代码,我只需要帮助理解这个简单应用程序的基础知识,并可能向我展示我的代码在哪里可以更好、更小或更快。

***我知道这都在一个类中,但例如它作为程序的简化版本效果更好。

最后一个问题:我想开始做一个游戏,很简单,帮助对java的理解更透彻。基于文本,但有生命和枪支以及买卖等。设置具有多个需要由多个类更新的变量并且这些类必须识别何时从不同的类更改变量的程序的最佳方法是什么?希望这是有道理的。示例 johm 有 10k 现金并且在 Baller 俱乐部,但是当他的现金低于 10k 标记时,他被从俱乐部中删除。我咬得比我能咀嚼的还多吗?接下来,我想将 mysql 和在线数据库添加到组合中,然后添加图形按钮等。

快乐编程~James

package petNameGennie;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Set;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class FirstGui extends JFrame {
TextField text = new TextField(20);


private static final long serialVersionUID = 1L;


public FirstGui(){
    super("Pet Genie");
    setSize(600,400);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JPanel p = new JPanel();
    JPanel p2 = new JPanel();
    JPanel p3 = new JPanel(new GridBagLayout());

    JButton b = new JButton("YOLO");

    //adding ears to the button!
    p.add(b);

    add(p);
    add(text);

    JLabel label1 = new JLabel("wha");
    JTextField tf= new JTextField("tf     tgggggtg");


    JTextArea ta= new JTextArea("text area yooooo");

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.insets = new Insets(30,30,30,30);

    //gbc.gridx = 12;
    //gbc.gridy = 12;
    //p3.add(label, gbc);
    //
    //gbc.gridx = 12;
    //gbc.gridy = 12;
    //p3.add(tf, gbc);

    p3.add(label1, gbc);
    p3.add(tf, gbc);
    p3.add(ta);

    add(p, BorderLayout.SOUTH);
    add(p3, BorderLayout.CENTER);
    add(p2, BorderLayout.NORTH);
    add(text, BorderLayout.BEFORE_FIRST_LINE);
    b.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {


            //newgen
            String[] peoples = {"MAX","BUDDY","JAKE","BAILEY");

            List<String> names = Arrays.asList(peoples);
            Collections.shuffle(names);
                {
            int index = new Random().nextInt(names.size());
            String anynames = names.get(index);
            System.out.println(anynames);




            //end gen
            //Auto-generated method stub

    JOptionPane.showMessageDialog(null, "Your Dogs name is " +    anynames);
            String aa = anynames;
            anynames = aa;

            text.setText(aa);


            }
                }


    }
    );
    //if (b.) {                      //Not complete
        //b.setVisible(false);
    }



}
4

1 回答 1

0

我需要帮助了解为什么在我退出弹出窗口后按钮和标签不会生效。它几乎就像我需要刷新屏幕?早些时候,我尝试编写一个标签来保存狗的名字,并且在按下按钮后(禁用按钮 w/我没有这样做)并将标签更改为 label=“Dogname”或 Null 和按下示例后的狗名:label = “伙伴”

替换为对我来说很好的TextField text = new TextField(20);作品JLabel text = new JLabel();

为什么我不能用标签做到这一点?

你可以,而且效果很好。您可能需要调用revalidate以确保在更改标签文本后正确布置父容器,但它工作得很好

留在可变范围内的最佳方法是什么?

通常通过使用实例变量(如text)或根据您要实现的目标将它们作为参数传递给方法。

最后的意思是什么?

在变量的上下文中,final本质上意味着内存引用不能在运行时更改。查看最终版本以获取更多详细信息

当我从按钮中删除动作监听器时,它仍然在监听。为什么?

我怀疑您正在尝试删除错误的侦听器实例(基于您的代码示例),但您没有提供演示此功能的代码,因此无法判断

我不太了解初始化和实例是否有一个简单的类比可以帮助我解决这个问题?

你是人类的一个实例,你的父母初始化了你——尽量不要停留在那个想法上。查看了解实例和类成员以及初始化字段以获取更多详细信息

最后一个问题:我想开始做一个游戏,很简单,帮助对java的理解更透彻。基于文本,但有生命和枪支以及买卖等。设置具有多个需要由多个类更新的变量并且这些类必须识别何时从不同的类更改变量的程序的最佳方法是什么?希望这是有道理的。示例 johm 有 10k 现金并且在 Baller 俱乐部,但是当他的现金低于 10k 标记时,他被从俱乐部中删除。我咬得比我能咀嚼的还多吗?接下来,我想将 mysql 和在线数据库添加到组合中,然后添加图形按钮等。

首先了解Model-View-Control模式(以及了解 Model-View-Controller

分开责任范围,以便您的程序的某些部分具有明确和定义的责任范围,并且不会溢出。

了解客户端-服务器模式以及这两个组件的职责范围。

和接口的代码,而不是实现。查看Code to Interface、Access by name 和 Instance Data了解一些详细信息

了解面向对象的设计模式并了解何时使用它们

于 2013-10-28T23:51:22.553 回答