Ⅰ 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);也做相應的改變