Java 将一个类中声明的全局变量用于另一个类时的混淆
我有两个不同的.java文件 java,这是一个获取用户详细信息的小程序 EmbeddedNeo4j用于在Neo4j中创建节点 我想使用包含从EmbeddedNeo4j中的form.java检索的值的变量 我已经检索到了这些值。我想知道如何在不同的java文件中使用这些值 我的form.java文件如下Java 将一个类中声明的全局变量用于另一个类时的混淆,java,applet,Java,Applet,我有两个不同的.java文件 java,这是一个获取用户详细信息的小程序 EmbeddedNeo4j用于在Neo4j中创建节点 我想使用包含从EmbeddedNeo4j中的form.java检索的值的变量 我已经检索到了这些值。我想知道如何在不同的java文件中使用这些值 我的form.java文件如下 import java.util.*; import java.awt.*; import javax.swing.*; import java.applet.Applet; import ja
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.applet.Applet;
import java.awt.event.*;
import java.awt.event.ActionEvent;
public class form extends JApplet implements ActionListener
{
String Firstname,Lastname,Birthdate,Gender,State,City,HobbyS,EducationS,OccupationS;
Object Hobby,Education,Occupation;
// instance variables - replace the example below with your own
String HobbyList[]={"Select ANY ONE","Cricket","Hockry","Golf","BasketBall","Football"};
String EducationList[]={"Select ANY ONE","BSc","BCom","BE","B.Tech","MBA","MBBS","PhD"};
String OccupationList[]={"Select ANY ONE","Business","Service","others"};
JPanel panel=new JPanel(new SpringLayout());
JLabel l1=new JLabel("First Name",JLabel.LEFT);
JTextField t1=new JTextField(50);
JLabel l2=new JLabel("Last Name",JLabel.LEFT);
JTextField t2=new JTextField(50);
JLabel l3=new JLabel("Birthday",JLabel.LEFT);
JTextField t3=new JTextField(20);
JRadioButton r1=new JRadioButton("Male");
JRadioButton r2=new JRadioButton("Female");
JLabel l4=new JLabel("State",JLabel.LEFT);
JTextField t4=new JTextField(50);
JLabel l5=new JLabel("City",JLabel.LEFT);
JTextField t5=new JTextField(50);
JLabel l6=new JLabel("Hobby",JLabel.LEFT);
JComboBox jl1=new JComboBox(HobbyList);
JLabel l7=new JLabel("Education",JLabel.LEFT);
JComboBox jl2=new JComboBox(EducationList);
JLabel l8=new JLabel("Occupation",JLabel.LEFT);
JComboBox jl3=new JComboBox(OccupationList);
JLabel l9=new JLabel("THANK YOU" ,JLabel.LEFT);
JButton submit=new JButton("SUBMIT");
public void init()
{
add(panel);
panel.setLayout(new SpringLayout());
panel.add(l1);
panel.add(t1);
panel.add(l2);
panel.add(t2);
panel.add(l3);
panel.add(t3);
// add(cpanel);
panel.add(r1);
panel.add(r2);
panel.add(l4);
panel.add(t4);
panel.add(l5);
panel.add(t5);
panel.add(l6);
panel.add(jl1);
panel.add(l7);
panel.add(jl2);
panel.add(l8);
panel.add(jl3);
panel.add(l9);
panel.add(submit);
/*panel.add(c1);
panel.add(c2);
panel.add(c3);
panel.add(c4);*/
/*panel.add(c2);*/
Dimension d =new Dimension(20,20);
l1.setLabelFor(t1);
l2.setLabelFor(t2);
t1.setPreferredSize(d);
t1.setSize(d);
t1.setMaximumSize(d);
// t1.setMinimumSize(d);
t2.setPreferredSize(d);
t2.setSize(d);
t2.setMaximumSize(d);
t3.setPreferredSize(d);
t3.setSize(d);
t3.setMaximumSize(d);
t4.setPreferredSize(d);
t4.setSize(d);
t4.setMaximumSize(d);
t5.setPreferredSize(d);
t5.setSize(d);
t5.setMaximumSize(d);
SpringUtilities.makeCompactGrid(panel,10,2,20,20,10,10);
submit.addActionListener(this);
// provide any initialisation necessary for your JApplet
}
public void actionPerformed(ActionEvent ae)
{
Firstname=t1.getText();
Lastname=t2.getText();
Birthdate=t3.getText();
if(r1.isSelected())
{Gender=r1.getText();
}
else
Gender=r2.getText();
State=t4.getText();
City=t5.getText();
Hobby=jl1.getSelectedItem();
Education=jl2.getSelectedItem();
Occupation=jl3.getSelectedItem();
HobbyS=Hobby.toString();
EducationS=Education.toString();
OccupationS=Occupation.toString();
repaint();
//System.out.println(Firstname)
}
public void start()
{
}
public void stop()
{
}
public void paint(Graphics g)
{
g.setColor(Color.red);
super.paint(g);
g.drawString(Firstname,10,560);
g.drawString(Lastname,10,570);
g.drawString(Birthdate,10,580);
g.drawString(Gender,10,590);
g.drawString(State,10,600);
g.drawString(City,10,610);
g.drawString(HobbyS,10,620);
g.drawString(EducationS,10,630);
g.drawString(OccupationS,10,640);
}
public void destroy()
{
// provide code to be run when JApplet is about to be destroyed.
}
}
我想在EmbeddedNeo4j中使用字符串Firstname、Lastname、生日、性别、州、城市、霍布斯人、教育、职业
有什么建议吗?您可能希望为每个要访问的字段创建公共getter方法:
public String getFirstname() {
return Firstname;
}
public String getLastname() {
return Lastname;
}
我还建议您用小写字母命名字段,即:firstname,lastname
正如@chrylis所说,将所有这些相关字段封装在一个类中也很好。在Java中,如果您想复制所有数据,只需创建一个Person bean类,就没有全局变量的概念,例如:
public class Person{
private String fname;
private String mname;
private String lname;
public String getfname() {
return fname;
}
public String setfname() {
return fname;
}
//Other getters()&setters();
}
然后,您可以使用getter和setter在表单类中定义一个Pesron类
若您想使用java类,比如global variable,您可以在另一个类中将Person类定义为静态变量,如下所示
Public class Globals{
Public static Person FakeGlobalvariablePerson=null;
}
通过调用Globals.FakeGlobalvariablePerson,它可以像全局变量一样使用,但记住这不是一种好的编码方式。我不知道从哪里开始,只是指出Java没有任何类型的全局变量,让整个Java程序直接扩展JApplet通常是一种糟糕的设计。也许你应该创建一个数据对象人,你可以用它来移动信息。你能详细介绍一下数据对象部分吗?在开始GUI编程之前,请先学习一个基本的命令行Java教程。有许多基本问题需要解决。1为什么要编写小程序?如果是由于老师的特殊要求,请参考。2对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程。3同意@chrylis的观点,你应该从简单的事情开始。小程序的开发和部署要比它们原来的样子困难得多。请参阅第一篇评论中的博客文章,了解我对它的看法。