我需要帮助理解为什么在退出弹出窗口后按钮和标签不会生效。它几乎像我需要刷新屏幕?早些时候我试过编码一个标签来保持狗的名字和按下按钮后(禁用按钮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);
}
}
答案 0 :(得分:0)
我需要帮助理解为什么按钮和标签不会生效 我退出弹出后。它几乎像我需要刷新屏幕? 早些时候我试过编码标签来保持狗的名字和按钮后 已按下(禁用按钮w /我没做)并将标签更改为 比较标签=“Dogname”或Null以及按下后的狗名 例如:label =“buddy”
用TextField text = new TextField(20);
替换JLabel text = new JLabel();
对我来说效果很好
为什么我不能用标签做这件事?
你可以,它工作正常。您可能需要调用revalidate
以确保在更改标签文本后正确布置父容器,但它可以正常工作
保持可变范围的最佳方法是什么?
通常使用实例变量(如text
)或将它们作为参数传递给基于您尝试实现的方法。
最终意味着什么?
在变量的上下文中,final
实质上意味着无法在运行时更改内存引用。查看final了解更多详情
当我从按钮中移除动作列表器时,它仍然会侦听。为什么?
我怀疑您正在尝试删除错误的侦听器实例(基于您的代码示例),但您没有提供演示此功能的代码,因此无法分辨
我不了解初始化和实例非常好有一个 简单的类比,可以帮助我吗?
你是人类的一个实例,你的父母初始化了你 - 尽量不要徘徊在那个想法上。有关详细信息,请查看Understanding Instance and Class Members和Initializing 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并了解何时使用