Java概念理念
**已解决** 我对Java相当陌生,到目前为止我喜欢它 所以我只是想问问有没有人能帮到我。这就是我想做的 我现在正在开发的是一个可以与我的本地网站交互的应用程序(更改标题、内容等)。所以我想做的是显示一个Java概念理念,java,swing,concept,Java,Swing,Concept,**已解决** 我对Java相当陌生,到目前为止我喜欢它 所以我只是想问问有没有人能帮到我。这就是我想做的 我现在正在开发的是一个可以与我的本地网站交互的应用程序(更改标题、内容等)。所以我想做的是显示一个JOptionPane.showConfirmDialog,然后输入用户名和密码 因此,基本上如果用户名或密码错误,我希望显示一个JOptionPane.showMessageDialog,但是当他们单击Ok让他们知道信息错误时,showConfirmDialog将消失 有什么想法吗,伙计们?
JOptionPane.showConfirmDialog
,然后输入用户名和密码
因此,基本上如果用户名或密码错误,我希望显示一个JOptionPane.showMessageDialog
,但是当他们单击Ok
让他们知道信息错误时,showConfirmDialog
将消失
有什么想法吗,伙计们?!这是我的密码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class javaTesting extends JFrame {
public JFrame mrFrame;
public int enter;
public JPanel mrPanel;
public javaTesting() throws Exception
{
Class.forName("com.mysql.jdbc.Driver");
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cms","root","");
} catch (SQLException e){
System.out.println(e.getMessage());
}
mrFrame = new JFrame();
mrPanel = new JPanel();
mrPanel.setLayout(new GridLayout(4,1));
JLabel user = new JLabel("Username");
mrPanel.add(user);
JTextField user_input = new JTextField(30);
mrPanel.add(user_input);
JLabel pass = new JLabel("Password");
mrPanel.add(pass);
JTextField pw_input = new JPasswordField(30);
mrPanel.add(pw_input);
mrFrame.setSize(700,700);
mrFrame.setLocationRelativeTo(null);
mrFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//mrFrame.setVisible(true);
mrFrame.setResizable(false);
input();
if(enter == JOptionPane.OK_OPTION)
{
JOptionPane.showMessageDialog(null, "You clicked ok!");
input();
} else {
System.exit(1);
}
}
public void input()
{
enter = (int) JOptionPane.showConfirmDialog(mrFrame,mrPanel,"Login Cridantiels",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
}
public static void main(String agrs[]) throws Exception
{
new javaTesting();
}
}
所以这就是我所做的,它似乎对我很好,我不知道它是否正确。不管它如何工作:]
do{
input();
if(enter == JOptionPane.OK_OPTION)
{
JOptionPane.showMessageDialog(null, "You clicked ok!");
} else {
System.exit(1);
}
} while(enter != JOptionPane.CANCEL_OPTION);
正如shan所建议的,您需要循环代码的凭证收集部分。这里有一个例子
JPanel pnlDetails = new JPanel(new GridBagLayout());
JTextField userNameField = new JTextField(10);
JPasswordField passwordField = new JPasswordField(10);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(2, 2, 2, 2);
pnlDetails.add(new JLabel("User name:"), gbc);
gbc.gridy++;
pnlDetails.add(new JLabel("Password:"), gbc);
gbc.gridx = 1;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.EAST;
pnlDetails.add(userNameField, gbc);
gbc.gridy++;
pnlDetails.add(passwordField, gbc);
// The result from the dialog, will be OK or CANCEL
int operation;
// Flag used to determine if the credentials are okay or not
boolean badCredentials = true;
do {
operation = JOptionPane.showConfirmDialog(null, pnlDetails, "Login", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);
String userName = userNameField.getText();
char[] password = passwordField.getPassword();
// You would valid you credintals here :P
if (userName.equals("super") && new String(password).equals("happy")) {
badCredentials = false;
} else if (operation != JOptionPane.CANCEL_OPTION) {
JOptionPane.showMessageDialog(null, "Invalid Credentials", "Error", JOptionPane.ERROR_MESSAGE);
}
} while (operation != JOptionPane.CANCEL_OPTION && badCredentials);
if (!badCredentials && operation != JOptionPane.CANCEL_OPTION) {
System.out.println("Continue program");
} else {
System.out.println("Exit program");
}
System.exit(0);
基本上,你需要一个循环来处理它…@shan谢谢,我做了一个do{}while()循环,效果很好。谢谢还有一个提示。在java中,所有类都应该以大写字母开头:)如果您是新手,了解它很重要;)