【发布时间】:2021-05-23 11:22:34
【问题描述】:
这是我尝试从命令行运行的 Java:
package my;
import javax.swing.*;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class Login extends JFrame{
JLabel l1,l2,l3;
JTextField t1;
JPasswordField t2;
JButton b1;
Login(){
Font f=new Font("Arial",Font.BOLD,24);
l1=new JLabel("my.Login Page");
l1.setFont(f);
l2=new JLabel("UserName");
t1=new JTextField();
l3=new JLabel("Password");
t2=new JPasswordField();
b1=new JButton("my.Login");
l1.setBounds(70,40,200,40);
l2.setBounds(70,100,100,20);
t1.setBounds(70,120,200,30);
l3.setBounds(70,170,100,20);
t2.setBounds(70,190,200,30);
b1.setBounds(170,240,100,30);
add(l1);
add(l2);
add(t1);
add(l3);
add(t2);
add(b1);
setLayout(null);
setVisible(true);
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
System.out.println(t1.getText());
System.out.println(String.valueOf(t2.getPassword()));
}
});
}
public static void main(String[] args){
Login login=new Login();
}
}
使用以下命令:
javac my\Login.java
java my.Login
之前我在 IntellIJ 中编写 Java 代码时甚至可以在 IDE 和命令行中运行它。但是,现在我只能在 IntellIJ 中运行 Swing Java 代码。
当我尝试在命令行中运行它时,我得到以下信息:
Error: Could not find or load main class my.Login
是否有任何模式可以从命令行运行摇摆代码?当我尝试在命令行中运行此代码时,为什么会出现错误? 我的计算机中有 Java 8,Java 已添加到 PATH。
【问题讨论】:
-
my目录是否包含Login.class? -
是的。它在这个包里。
-
检查您是否将 env var
CLASSPATH设置为一些不合适的值,如果是,请修复它,或显式覆盖它:java -cp . my.Login -
添加
-cp=.有帮助吗? -
不确定问题的症结所在,但代码上有一些问题。 1) 使用
JPasswordField的好电话! 2) 但不要扩展或使用JFrame进行登录。模态JDialog或JOptionPane效果更好。只需为登录创建(不要扩展)JPanel并将其放在顶级窗口(TLW)中。 3) 在顶部看到的标签作为 TLW 的标题会更好。 4) Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同区域设置的不同 PLAF。 ..
标签: java swing cmd command-line java-8