我正在用Java编写程序(使用Swing)来连接数据库。我有两节课。程序从interface.java开始,在那里创建带有用户界面的表单,其中我有登录和密码字段以及连接按钮。当用户按下按钮时,应开始第二类(连接)。
还有我的问题 - 是否可以将变量从一个类(接口)转移到另一个类(connecting.java)?如果是,那怎么样?
代码:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JProgressBar;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextArea;
public class Interface extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GUI frame = new GUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public GUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 615, 300);
setTitle("DefectLoader");
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("Login");
lblNewLabel.setBounds(10, 8, 65, 14);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("Password");
lblNewLabel_1.setBounds(10, 40, 65, 14);
contentPane.add(lblNewLabel_1);
textField = new JTextField();
textField.setBounds(80, 5, 100, 20);
contentPane.add(textField);
textField.setColumns(10);
textField_1 = new JTextField();
textField_1.setBounds(80, 35, 100, 20);
contentPane.add(textField_1);
textField_1.setColumns(10);
JButton btnNewButton = new JButton("Connect");
btnNewButton.setBounds(10, 85, 170, 23);
contentPane.add(btnNewButton);
}
}
答案 0 :(得分:0)
是。这是可能的。
如果他们是static
字段,您可以将其称为interface.variableName;
如果private
您可以创建如下的getter方法:
public variableType getVariableX(){
return variableX;
}
并在该类的实例上调用它们。
例如:
Interface interface = new Interface();
interface.getVariableX();//<-- Assign this to a variable or do w/e operation
等。
如果你想要更多,你需要发布一些代码
评论后更新:
对于登录名和密码,您可以:
1)在您的界面static
上将这些字段设置为class
:
public static String login = //whatever
public static String password = //whatever
2)在您的连接class
内执行以下操作:
String login = interface.login;
String password = interface.password;
或者像这样使用它们:
System.out.println(interface.login);
等。
注意:您还应了解Java
命名约定。您应该以大写字母开头命名您的课程。像Connecting
等
希望这有帮助
答案 1 :(得分:0)
是的,就像这样:
public class Interface {
private String foo = "bar";
private int number = 14;
public String getFoo() {
return this.foo;
}
public String getNumber() {
return this.bar;
}
}
public class Connecting {
public Connecting(Interface userInterface) {
System.out.println("Foo is " + userInterface.getFoo());
System.out.println("Number is " + userInterface.getNumber());
}
}