Ⅰ java 一个类调用另一个类的方法 怎样控制另一个类的方法执行完再继续执行本类
按照你的代码,最简单但笨拙的解决方案如下:
//methodreco
JPasswordFieldDemoJP=newJPasswordFieldDemo();
Stringreader_id=null;
do{
reader_id=JP.reader_id;
intn1=0;
//后续登陆check逻辑
}while(reader_id!=null);
最好的做法是给登陆窗口中的登陆按钮触发事件时调用后续的登陆查询逻辑
//methodreco
//1.实例化登陆窗口对象
JPasswordFieldDemoJP=newJPasswordFieldDemo();//构造是不要立即显示窗体
//2.注册事件
JButtonloginBtn=JP.getLoginButton();//简单封装下,当然可以粗糙些,类似JP.reader_id
//注册一个listener
loginBtn.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
//后续登陆check逻辑
}
});
//3.显示登陆窗口
JP.setVisible(true);
看了下,你说好像去登陆框里的值有问题,取不到,可以这样封装个方法在类JPasswordFieldDemo
//类JPasswordFieldDemo中定义一个方法
publicStringgetLoginName(){
//用户名控件nameTextField
returnnameTextFiled.getText();
}
//密码控件也可以类似
然后在当前类中recommend中
String reader_id=JP.reader_id 改成
String reader_id=JP.getLoginName();
类似这种
Ⅱ Java中的记住的密码功能出了一点问题,请各位高手指点
记住密码时在让其在本地创建一个文件,该文件中保存了用户名和密码,当下次登陆时,先根据这个文件读取出保存的用户名和密码,如果用户名一致,那么就自动把密码放到密码框中。
if(r==str[i]){
这里不能用等于,需要用equals比较
if (r.equals(stri[i]) {
Ⅲ 1. 编写一个应用程序,有一个标题为“登录”的窗口,能实现用户名和密码的输入。
packagelab;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.util.Scanner;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
importjavax.swing.border.TitledBorder;/*编写一个应用程序,有一个标题为“登录”的窗口,能实现用户名和密码的输入。
(1)如果用户名和密码输入正确,则单击“登录”按钮弹出“用户登录成功”的消息框;
(假设用户名是admin,密码是123456)。
(2)如果用户名和密码输入错误,则单击“登录”按钮弹出“用户登录失败”的消息框。*/
publicclassLoginextendsJFrame{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
LoginfReg=newLogin();
fReg.setVisible(true);//设置窗体可见
}
publicLogin(){
super();
setTitle("登录");
setBounds(100,160,260,210);
getContentPane().setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finalJLabellable=newJLabel();
lable.setBorder(newTitledBorder(null,"",TitledBorder.DEFAULT_JUSTIFICATION,TitledBorder.DEFAULT_POSITION,null));
lable.setForeground(newColor(255,0,0));
lable.setFont(newFont("",Font.BOLD,18));
lable.setText("学生账户登录");
lable.setBounds(60,28,120,36);
getContentPane().add(lable);
finalJLabelnameLable=newJLabel();
nameLable.setText("姓名");
nameLable.setBounds(39,83,60,15);
getContentPane().add(nameLable);
JTextFieldnameField=newJTextField();
nameField.setBounds(89,80,120,21);
getContentPane().add(nameField);
finalJLabelpasswordLable=newJLabel();
passwordLable.setText("密码");
passwordLable.setBounds(39,107,60,15);
getContentPane().add(passwordLable);
//JTextFieldbornField=newJTextField();
JPasswordFieldpasswordField=newJPasswordField();
passwordField.setEchoChar('*');
passwordField.setBounds(89,104,120,21);
getContentPane().add(passwordField);
finalJButtonexitButton=newJButton();
exitButton.setText("退出");
exitButton.setBounds(141,132,68,23);
getContentPane().add(exitButton);
exitButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
JButtonbutton=(JButton)e.getSource();
StringbuttonName=e.getActionCommand();
if(buttonName.equals("退出")){
System.exit(DO_NOTHING_ON_CLOSE);
}
}
});
finalJButtonloginButton=newJButton();
loginButton.setText("登录");
loginButton.setBounds(67,132,68,23);
getContentPane().add(loginButton);
loginButton.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
JButtonbutton=(JButton)e.getSource();
StringbuttonName=e.getActionCommand();
//Scannerscan=newScanner(System.in);
//StringnameField=scan.next();
//StringpasswordField=scan.next();
StringuserName=nameField.getText();
Stringpassword=passwordField.getText();
if(buttonName.equals("登录")){
if(userName.equals("admin")&&password.equals("123456")){
lable.setText("你已经登录了!");
}else{
lable.setText("您登陆失败!");
}
}
}
});
}
/*classLoginCheck{//编写登录验证类
privateStringuserName;//用户名
privateStringpassword;//密码
publicLoginCheck(StringuserName,Stringpassword)//复写构造方法
{
this.userName=userName;//为用户名赋值
this.password=password;//为密码赋值
}
publicbooleanvalidate()//设置验证方法
{
if("admin".equals(userName)&&"123456".equals(password))
{
returntrue;//登录成功
}else{
returnfalse;//登录失败
}
}
}
*/
}
方法二:
importjavax.swing.JFrame;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.*;
{
privateJLabelusernameLabel,passwordLabel,result;
privateJTextFielsername,password;
privateJButtonlogin,exit;
publicOne(){
init();
setVisible(true);
}
publicvoidinit(){
setTitle("登录");
setSize(400,500);
setLocation(400,400);
setLayout(null);
usernameLabel=newJLabel("用户名");
username=newJTextField();
//JPasswordFieldpassword=newJPasswordField();
//password.setEchoChar("*");
passwordLabel=newJLabel("密码");
password=newJTextField();
result=newJLabel();
login=newJButton("登录");
exit=newJButton("退出");
usernameLabel.setBounds(20,20,30,30);
username.setBounds(80,20,200,40);
passwordLabel.setBounds(20,80,30,30);
password.setBounds(80,80,200,40);
login.setBounds(300,20,60,40);
exit.setBounds(300,80,60,40);
result.setBounds(100,350,120,20);
add(usernameLabel);
add(passwordLabel);
add(username);
add(password);
add(login);
add(exit);
add(result);
login.addActionListener(this);
exit.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==login){
Stringuser=username.getText();
Stringpaw=password.getText();
if(user.equals("admin")||paw.equals(12345)){
JOptionPane.showMessageDialog(getComponent(0),"登陆成功");
dispose();
}
else{
JOptionPane.showMessageDialog(getComponent(0),"登陆失败");
}
}
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
newOne();
}
}
希望对你有帮助!
Ⅳ java中怎么把字符串转化为字符串数组
1,
如果是 “字符串数组” 转 “字符串”,只能通过循环,没有其它方法
String[] str = {"abc", "bcd", "def"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++){
sb. append(str[i]);
}
String s = sb.toString();
2,
如果是 “字符数组” 转 “字符串” 可以通过下边的方法
char[] data={'a','b','c'};
String s=new String(data);
3,
使用StringUtils中的join函数。org.apache.commons.lang.StringUtils;
4,
将数组变成字符串
5,
StringUtils.join(str)
// 将数组用逗号分隔变成字符串
StringUtils.join(str, ",")
将字符串变成数组方法:
java.lang包中有String.split()方法,java中通常用split()分割字符串,返回的是一个数组。
特殊,转义字符,必须加"\"(“.”和“|”都是转义字符)
Ⅳ 简单JAVA程序,求高人找出其中错误。。。。。。
你好,你的错误就错在
“comments.setLineWrap(true);
comments.setWrapStyleWord(true);
”
这两行的位置不对,这两行必须放在函数体内,也就是要下移到
“ public Authenticator(){
super("AI");
”
这两行的后面去。
你可以把在方法体外定义成员变量,类似于你写的:
“
JTextField username=new JTextField(15);
JPasswordField password=new JPasswordField(15);
”
这样在函数外边,定义一些成员变量时没有问题的,不会报错。
但如果你要在函数外边去做一些调用,就是不被允许的了,所以你的程序会报错,以后编程时要注意。
希望对你有帮助,加油!
Ⅵ 请各位高手帮忙编写JAVA程序: 题目:求一个3阶方阵的对角线上个元素之和。
public class Test
{
public static void main(String[] args)
{
double[][] data = {{1,2,3},
{4,5,6},
{7,8,9}};
System.out.println("3阶方阵的对角线上个元素之和为:" + (data[0][0] + data[1][1] + data[2][2]));
}
}
Ⅶ JAVA问题,在swing如何获取JTextField文本框的值像用户名啊,还有密码框
需要用到“trim()”。JTextField
jtf=new
JTextField();//new出一个jtf,是可以不赋值的String
aa
=
jtf.getText().trim();//需要取值的时候版,用字符串变量权接收当前的值
Ⅷ 求一个java图书管管理软件登陆界面系统代码
package pack_view;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.;
import javax.swing.plaf.multi.MultiLookAndFeel;
import pack_DB.DB;
public class Login extends JFrame{
/**
* 登陆界面
*/
private static final long serialVersionUID = 1L;
JFrame jf = new JFrame();
private JPanel panel_all ;
private JPanel panel1 = new JPanel();
private JPanel panel2= new JPanel();
private JPanel panel3 = new JPanel();
private JPanel panel4 = new JPanel();
private JLabel jLabel_title;
private JLabel jLabel_name = new JLabel();
private JLabel jLabel_password = new JLabel();
private JTextField jTextField_name = new JTextField(15);
private JPasswordField jPasswordField = new JPasswordField(15);
private JButton jb1 = new JButton();
private JButton jb2 = new JButton();
private Font font;
String cid="";
String passwd ="";
//加载背景图片
// private ImageIcon imageicon;
// private Image image;
public Login() {
jf.setTitle("客户端登陆");
jf.setSize(350, 300);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//把用户的显示器屏幕的尺寸(长和宽)赋值给变量screenSize
Dimension frameSize = jf.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
//把弹出的对话框窗口放置在屏幕中间
jf.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
// imageicon = new ImageIcon(ClassLoader
// .getSystemResource("res/backgound.jpg".toString()));
panel_all = new JPanel(){
public void paintComponent(Graphics g){
super.paintComponents(g);
// image = imageicon.getImage();
// if(image != null)
// g.drawImage(image,0,0,getWidth(),getHeight(),this);
}
};
font=new Font("宋体正文", 0,20);
jLabel_title = new JLabel(new ImageIcon(ClassLoader
.getSystemResource("res/Login.jpg".toString())));
jLabel_title.setFont(font);
jLabel_title.setText("用户登陆");
jLabel_name.setFont(new java.awt.Font("Dialog", 0, 14));
jLabel_name.setText("用户名:");
jLabel_password.setFont(new java.awt.Font("Dialog", 0, 14));
jLabel_password.setText("密 码:");
jb1.setFont(new java.awt.Font("Dialog", 0, 18));
jb1.setText("确 认");
jb2.setText("取 消");
jb2.setFont(new java.awt.Font("Dialog", 0, 18));
jTextField_name.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
jb1.doClick();
}
}});
jPasswordField.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
jb1.doClick();
}
}});
panel1.add(jLabel_name);
panel1.add(jTextField_name);
panel2.add(jLabel_password);
panel2.add(jPasswordField);
panel3.add(jb1);
panel3.add(jb2);
panel4.add(jLabel_title);
panel_all.setLayout(new GridLayout(4,1));
panel_all.add(panel4);
panel_all.add(panel1);
panel_all.add(panel2);
panel_all.add(panel3);
panel_all.setOpaque(false);
jf.setLayout(new BorderLayout());
jf.add(panel_all);
jb1.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
// if(lc.validate(jTextField_name.getText().trim(),new String(jPasswordField.getPassword()).trim())){
// doLogin();
// new MainFrame();
// }
// else
// JOptionPane.showMessageDialog(null, "Password doesn't match account,please try again!");
}
});
jb2.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
System.exit(0);
}
});
jf.setVisible(true);
jf.repaint();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/* public void doLogin(){
cid=jTextField_name.getText().trim();
passwd=jPasswordField.getText().trim();
String sql = "select *from customer where "+"cid='"+cid+"' and password='"+passwd+"'";
if (DB.connectDB()) {
if (DB.query(sql)){
System.out.print("登陆成功");
jf.dispose();
new MainFrame(cid);
return;
} else {
System.out.print("登陆失败");
return;
}
}
}
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Login();
}
}
Ⅸ java中写个密码输入的程序,当输入为空时,就按确认键,弹出提示
只有integer可以判断为空
Integer number;
if(number!=null){
int num = number.intValue();
switch (number){
case 1645:
oneJTextArea.append(datetime.format(new Date()) + "\t\ttechnician\n");
oneJPasswordField.setText("");
break;
default:
oneJTextArea.append(datetime.format(new Date()) +"\t\tAccess Denied\n");
oneJPasswordField.setText("");
}
}
Ⅹ 空指针,求解决
程序中虽然声明了password这个属性变量,可是在程序中并没有对其进行赋值,通过password调用getText()自然会抛出空指针异常了,代码中有以后这样的代码JPasswordField passwordText=new JPasswordField(6);不知你的用意是否是想对password进行赋值,改变为password=new JPasswordField(6);对password赋值,add(passwordText);也做相应的改变