我編寫了一個程序,它是一個包含兩個文本字段和兩個按鈕的登錄窗口,此階段的actionPerformed方法用於測試目的。我的問題是,我把所有的組件在構造函數中,我不知道如何編寫我的main()方法爲了讓程序運行,我嘗試了一些喜歡抓取類的引用,設置可見性,但沒有一個可行。Jpanel UI main()方法
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginUI extends JFrame implements ActionListener
{
JTextField Tusername;
JTextField Tpassword;
JButton Login = new JButton("Login");
JButton register = new JButton("Register");
JLabel passwordLabel = new JLabel("Password");
JLabel userLabel = new JLabel("User");
public String username;
public String password;
public LoginUI()
{
JFrame frame = new JFrame("Login or register");
JPanel Panel = new JPanel();
frame.add(Panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Login.setBounds(10, 80, 80, 25);
Panel.add(Login);
Login.addActionListener(this);
register.setBounds(180, 80, 80, 25);
Panel.add(register);
register.addActionListener(this);
Panel.setLayout(null);
JLabel userLabel = new JLabel("User");
userLabel.setBounds(10, 10, 80, 25);
Panel.add(userLabel);
Tusername = new JTextField(20);
Tusername.setBounds(100, 10, 160, 25);
Panel.add(Tusername);
JLabel passwordLabel = new JLabel("Password");
passwordLabel.setBounds(10, 40, 80, 25);
Panel.add(passwordLabel);
Tpassword = new JPasswordField(20);
Tpassword.setBounds(100, 40, 160, 25);
Panel.add(Tpassword);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == Login)
{
String username = Tusername.getText();
System.out.println(username);
}
else if (e.getSource() == register)
{
String password = Tpassword.getText();
System.out.println(password);
}
}
public static void main(String args[])
{
}}
1)Java GUI必須在不同的語言環境中使用不同的PLAF來處理不同的操作系統,屏幕大小,屏幕分辨率等。因此,它們不利於像素的完美佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 2)請學習常用的Java命名規則(命名約定 - 例如'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute',除非它是'UPPER_CASE_CONSTANT')並且一致地使用它。 –