本问题已经有最佳答案,请猛点这里访问。

这是我的代码:

public class Main extends JFrame{

static int NoOfUsers;

static String[][] Accounts = new String[NoOfUsers][2];

public static void main(String[] args){

Login();

}

private static void Login() {

final String FileName ="F:/TextFiles/loginaccs.txt";

try {

BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(FileName)));

int NoOfUsersL = Integer.parseInt(file.readLine());

String[][] Accounts = new String[NoOfUsersL][2];

NoOfUsers = NoOfUsersL;

for (int i=0; i

Accounts[i][0] = file.readLine();

Accounts[i][1] = file.readLine();

}

for (int i=0; i

System.out.println(Accounts[i][0]);

System.out.println(Accounts[i][1]);

}

file.close();

} catch (IOException e) {

System.out.println("ERROR: unable to read file.");

e.printStackTrace();

}

String username = null;

String password = null;

JTextField usernamejtf = new JTextField(username);

JPasswordField passwordjtf = new JPasswordField(password);

String[] buttons = {"Login","Create new account"};

Object[] InputDialog = {

"Username:", usernamejtf,"Password:", passwordjtf

};

do {

int option = JOptionPane.showOptionDialog(null,

InputDialog,

"Login",

JOptionPane.DEFAULT_OPTION,

JOptionPane.PLAIN_MESSAGE,

null,

buttons,

buttons[0]);

System.out.println(option); //Check

if (option == JOptionPane.CLOSED_OPTION ) {

return;

}

else if (option == 0) {

if (CheckAccount(username,password)) {

System.out.println("Logged in");

} else {

System.out.println("Wrong Password/Username");

}

} else if (option == 1) {

System.out.println("Create Account.");

}

} while (!(CheckAccount(username,password)));

}

private static boolean CheckAccount(String username, String password) {

for (int i=0; i>NoOfUsers; i++) {

if ((username == Accounts[i][0]) && (password == Accounts[i][1])) {

return true;

}

}

return false;

}

}

在"main"中,我调用了login()方法,Eclipse强迫我将单词"static"放在方法名前面。我是否可以修改程序,使行可以写为:private void login()…私有布尔支票帐户(…)…等?

[附加问题:因为"static"这个词,我不能把"public"这个词放在string[]accounts=new string[noolfusersl][2]之前;这使得checkaccount无法访问accounts数组。如何修改程序以解决此问题。]提前通知大家。

您必须创建一个EDOCX1的实例(0),以便将方法用作实例方法。

它强迫您使用static,因为非静态方法属于instance,而不是class。您必须创建一个Main的实例。

回答额外的问题:可以。静态变量也被称为类变量。局部变量不能声明为静态。

静态方法静态方法是呼叫(不知道安安审审法)的呼叫建立和呼叫从第一页第一类为as belowP></

public static void main(String[] args){

Main main = new Main();

main.login();

}

private void login() { //remove static from instance methods

哇,不知道这么简单,太多了。

为什么要将主实例存储在变量中?你浪费了记忆。

@b&lint内存与new Main()一起使用。把它保存在变量中并不像你说的那样重要。这个变量只是对它的引用。

@很抱歉,不客气。不要忘记调用setVisible方法来显示jframe,还需要使用setBounds来设置帧的大小和位置。

在静态qualifiers阶to remove方法,你必须让你的布尔变量的方法和实例变量。然后,你可以和你的呼叫login()JFrame对象实例化。P></

转换的方法也mixedcase /变量名称As to Java offical公约。恩,你把我# VB或C语言编程?P></

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import javax.swing.SwingUtilities;

public class Main extends JFrame {

private static final long serialVersionUID = -105943237549003486L;

private int numOfUsers;

private String[][] accounts;

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

Main m = new Main();

m.login("F:/TextFiles/loginaccs.txt");

}

});

}

// Constructor, set up instance values here.

public Main() {

super();

}

private void login(final String fileName) {

try {

BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));

numOfUsers = Integer.parseInt(file.readLine());

accounts = new String[numOfUsers][2];

for (int i = 0; i < numOfUsers; i++) {

accounts[i][0] = file.readLine();

accounts[i][1] = file.readLine();

}

for (int i = 0; i < numOfUsers; i++) {

System.out.println(accounts[i][0]);

System.out.println(accounts[i][1]);

}

file.close();

} catch (IOException e) {

System.out.println("ERROR: unable to read file.");

e.printStackTrace();

}

String username = null;

String password = null;

JTextField usernamejtf = new JTextField(username);

JPasswordField passwordjtf = new JPasswordField(password);

String[] buttons = {"Login","Create new account" };

Object[] InputDialog = {"Username:", usernamejtf,"Password:", passwordjtf };

do {

int option = JOptionPane.showOptionDialog(null, InputDialog,"Login", JOptionPane.DEFAULT_OPTION,

JOptionPane.PLAIN_MESSAGE, null, buttons, buttons[0]);

System.out.println(option); // Check

if (option == JOptionPane.CLOSED_OPTION) {

return;

} else if (option == 0) {

if (checkAccount(username, password)) {

System.out.println("Logged in");

} else {

System.out.println("Wrong Password/Username");

}

} else if (option == 1) {

System.out.println("Create Account.");

}

} while (!(checkAccount(username, password)));

}

private boolean checkAccount(String username, String password) {

for (int i = 0; i > numOfUsers; i++) {

if (username == accounts[i][0] && password == accounts[i][1]) {

return true;

}

}

return false;

}

}

使用:P></

public static void main(String[] args){

Main main = new Main();

main.login();

}

为什么需要将实例存储在变量中?你浪费了记忆。

@B&lint它无论如何都将存储在内存中,因为它是在启动线程中执行的。

给new Main().login();P></

You should naming约定后续变量和Java method should start,lowercase名称与字母。P></

java 怎么去JTF边框,关于java:我怎样才能摆脱“静态”?相关推荐

  1. java抠图边框颜色处理_【图】绝密!抠图去黑边的方法 抠图去黑边框的处理技巧...

    我们平常在处理照片之后,会发现有黑边,看着非常不自然.抠图去黑边框是如何操作的呢?一般像ps这款软件操作起来会有一点复杂,需要在菜单栏里选择收缩像素,再反选删除,后者反选羽化删除.对于一些新手来说,还 ...

  2. java 操作execl添加边框

    java 操作execl添加边框 使用poi导出execl时想要有网格的样式时,可以使用下面的方法进行对execl添加边框,下面的方法会保留原execl模板设置的样式 /*** 抽取的实现粗边框的方法 ...

  3. java swing setborder_Swing编程边框(Border)的用法总结

    2. 下面列出程序的完整实现代码: Java示例: package Test; import java.awt.*; import javax.swing.*; import javax.swing. ...

  4. java设置界面边框,技术员教你解决Java 添加Word页面边框

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Java 添加Word页面边框的问题,如果我们遇到了Java 添加Word页面边框的情况,该怎么处理怎么才能解决Java ...

  5. Java PermGen 去哪里了?

    Java PermGen 去哪里了? 原文链接:原文作者:Monica Beckwith  以下为本人翻译,仅用于交流学习,版权归原作者和InfoQ所有,转载注明出处,请不要用于商业用途 在Java虚 ...

  6. java中去字符串中的(全角)空格

    在Java中去字符串首尾空格或去除所有空格的(包括全角)方法如下: /** * 去除字符串中所包含的空格(包括:空格(全角,半角).制表符.换页符等) * @param s * @return */ ...

  7. 去哪儿网北京Java开发一、二、HR面全部通过

    10.20 一天面完三面 技术面 一面自我介绍,二面无 简要介绍项目以及项目过程中遇到的问题 项目拓展问题 Redis和MySQL缓存一致性问题和解决策略(旁路缓存 / 延时双删) Redis键删除策 ...

  8. Java 编写推箱子报告,推箱子游戏用java怎么去写

    推箱子游戏用java怎么去写 发布时间:2020-06-22 16:31:07 来源:亿速云 阅读:100 作者:清晨 这篇文章将为大家详细讲解有关推箱子游戏用java怎么写,小编觉得挺实用的,因此分 ...

  9. 借3万去学了半年Java,但没找到工作,我要放弃Java吗?

    最近几年,很多人,尤其学历不高的年轻人,看到别的同学等同龄人,去做高薪工程师.IT工程师了,自己也很羡慕.特别的,看着自己工资每月到手才小几千块,而人家去做了程序员的,居然月薪两三万甚至更高的,想想都 ...

  10. 写好规范 Java 代码去大厂!

    头图 | CSDN 下载自东方 IC 作者 | sowhat1412  责编 | 张文 来源 | sowhat1412(ID:sowhat9094) 话不多说直接上干货,你我共勉. 构造器参数太多怎么 ...

最新文章

  1. Secure CRT 自动记录日志和时间戳功能配置
  2. 12 - Runtime实用的几个API
  3. spark-jar冲突解决方案
  4. 洛谷——P2871 [USACO07DEC]手链Charm Bracelet
  5. python无法安装pycurl_Python安装pycurl失败的解决方法
  6. javascript 性能 · 平稳退化、渐进增强
  7. Java基础---异常---turow和throws
  8. 自学python顺序-Django 学习顺序及入门要求?
  9. cisco的路由器上rip的被动接口,单播更新,水平分隔
  10. Python3 函数参数
  11. matlab如何获得一个二值掩码,1.3矩阵的掩码操作 - osc_uarhdl2n的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. 无线通信与编码_Rake接收机_三种合并算法_MATLAB仿真代码
  13. ideal如何快速导入import_IntelliJ IDEA 自动导入包 快捷方式
  14. 编程学习视频网站汇总
  15. 3D Vision--生成空间任意圆柱及任意直线
  16. 氩弧焊机的电气图_氩弧焊机的工作原理以及接线图
  17. 33张你没看过的酷炫化学动图, 秒懂化学反应原理!
  18. 聚焦传统网络,学习SDN基础和案例
  19. 前端字体图标的使用(阿里、icomoon)
  20. 深入理解JVM4:内存结构篇(方法区)

热门文章

  1. 如何使用树莓派 连接千寻开发板开发高精度应用
  2. Spring AOP的MyBatis事务管理
  3. 怎样用计算机做ppt,电脑怎么制作ppt步骤
  4. java计算ipv6前缀位数
  5. Linux下如何使用Vi编辑器
  6. 基于线性回归房价预测散点图和折线图
  7. (模拟)HDU - 5857 Median
  8. html字间距怎么缩小,word字间距怎么缩小
  9. IDEA修改主题颜色,只需要四步
  10. excel 第2讲:单元格格式设置