按下(初学者)后禁用按钮并考虑我的程序风格?

时间:2013-10-28 23:31:23

标签: java

我需要帮助理解为什么在退出弹出窗口后按钮和标签不会生效。它几乎像我需要刷新屏幕?早些时候我试过编码一个标签来保持狗的名字和按下按钮后(禁用按钮w /我没做)并更改标签说label =“Dogname”或Null和狗名称后面的按下示例:label = “好友”

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

为什么我不能用标签做这件事? 保持可变范围的最佳方法是什么?最终意味着什么? 当我从按钮中删除动作列表器时,它仍然会监听。为什么? 我不明白初始化和实例是否有一个简单的类比,可以帮助我吗?

Java新手,阅读书籍,教程和指南以获取帮助。我等不及开始编程我的网络知识和Mysql强大的程序的优势。请事先提供帮助。

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

我使用最新的java与eclipse。 我从头开始编码gui。 我理解主类以及如何实现类。 java最难的部分是gui更新新信息,我认为这将是一个简单的部分。看起来像添加布局和面板和框架按钮,并让它们更新你的代码正在做什么似乎有点混乱。

除了长代码和neewbie组织,有哪些提示可以帮助我学习这个?我已经用自己的话来解释事情的作用和意义,这已经帮助了很多。任何建议都将受到重视。

最后要注意的是我注意到程序员喜欢让其他新手程序员“搞清楚”。在我看来,我不认为这与给出原始答案和帮助一样具有建设性......我从头开始构建了这个程序,从4 + t4开始,现在觉得我可以自己编程并使用Web来获取语法帮助。我不是在寻找任何人来编写我的项目,我只需要帮助理解这个简单应用程序的基础知识,并且可以告诉我我的代码可以更好或更小或更快。

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

最后一个问题:我想开始制作一个非常简单的游戏,以帮助更彻底地了解java。基于文本但有生命和枪支以及买卖等。设置具有多个变量的程序的最佳方法是什么,这些变量需要由多个类更新,并且这些类必须识别何时从不同的类更改变量?希望这是有道理的。例如,johm有10万现金并且在球员俱乐部,但当他的现金低于10k大关时,他被从俱乐部中移除。我咬的比我能咬的多。接下来我想添加mysql和在线数据库混合然后图形按钮等。

快乐编程〜詹姆斯

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);
    }



}

1 个答案:

答案 0 :(得分:0)

  

我需要帮助理解为什么按钮和标签不会生效   我退出弹出后。它几乎像我需要刷新屏幕?   早些时候我试过编码标签来保持狗的名字和按钮后   已按下(禁用按钮w /我没做)并将标签更改为   比较标签=“Dogname”或Null以及按下后的狗名   例如:label =“buddy”

TextField text = new TextField(20);替换JLabel text = new JLabel();对我来说效果很好

  

为什么我不能用标签做这件事?

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

  

保持可变范围的最佳方法是什么?

通常使用实例变量(如text)或将它们作为参数传递给基于您尝试实现的方法。

  

最终意味着什么?

在变量的上下文中,final实质上意味着无法在运行时更改内存引用。查看final了解更多详情

  

当我从按钮中移除动作列表器时,它仍然会侦听。为什么?

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

  

我不了解初始化和实例非常好有一个   简单的类比,可以帮助我吗?

你是人类的一个实例,你的父母初始化了你 - 尽量不要徘徊在那个想法上。有关详细信息,请查看Understanding Instance and Class MembersInitializing Fields

  

最后一个问题:我想开始制作一款非常简单的游戏   帮助更彻底地了解java。基于文本但有生命和   枪支和买卖等。设置a的最佳方法是什么?   具有多个需要更新的变量的程序   多个类和那些类必须识别何时   变量是从不同的类改变的?希望这样做   感。例如约翰有10万现金并且在球员俱乐部但是什么时候   他的现金低于10k大关,他被从俱乐部中移除。我   咬得比我能咀嚼的多。接下来我想添加mysql和在线   DB是混合然后是图形按钮等。

首先了解Model-View-Control模式(和Understanding Model-View-Controller

将责任范围分开,以便您的计划的某些部分具有明确和明确的责任范围,并且不会溢出。

了解客户端 - 服务器模式以及这两个组件所具有的责任区域。

代码接口,而不是实现。有关详细信息,请查看Code to Interface, Access by name and Instance Data

了解Object Oriented design patterns并了解何时使用