- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章java GUI实现ATM机系统(3.0版)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
写个小项目了解一下GUI。用java GUI实现银行ATM自动取款机,实现登录界面、登录成功界面、各个操作功能实现界面.
用java GUI实现一个ATM机系统(3.0版) 。
设计两个包(bank包,atmJFrame包) 。
1、bank包:
(1)、ATM类:实现用户各种操作; (2)、Data类:从user文件中获取所有用户信息,并返回要找的用户,再将修改完之后的用户信息写入user文件中; (3)、user文件储存所有用户信息.
2、atmJFrame包:
(1)、MyJFrame类:自己创建的界面父类; (2)、LoginJFrame:登录界面; (3)、WorkingJFrame:登录成功后显示的功能界面; (4)、CentreJFrame:中间窗口,存钱、取钱、转账、修改密码界面的父类; (5)、QuMoneyJFrame:取钱界面; (6)、CunMoneyJFrame:存钱界面; (7)、GiveMoneyJFrame:转账界面; (8)、ChangePasswordJFrame:修改密码界面.
bank包 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
package
bank;
//ATM类
public
class
ATM {
//有一个类操作数据的类
private
Data data =
new
Data();
//ATM机里的数据
private
String userName;
//用户账号且唯一
private
String userPassword;
//用户密码
private
double
userMoney;
//用户账户里的钱
private
String user;
//使用该台ATM机的用户全部信息
private
String antherUser;
//被转账用户
//登录方法
public
boolean
login(String userNameString,String userPassword1){
boolean
b=
false
;
String x = data.backUser(userNameString);
//判断账户是否存在
if
(!x.equals(
"null"
)){
user = x;
//获取用户所有信息
String[] str = user.split(
"\\*"
);
//将用户信息分割
userName = str[
0
];
//用户名
userPassword = str[
1
];
//用户密码
userMoney = Double.parseDouble(str[
2
]);
//用户余额
//密码正确
if
(userPassword.equals(userPassword1))
b =
true
;
}
return
b;
}
//获取账户余额
public
Double getMoney1(){
return
userMoney;
}
//存钱
public
boolean
saveMoney(Double money1){
boolean
b =
false
;
if
(money1%
100
==
0
) {
//如果存的钱正确
userMoney = userMoney + money1;
//存上
b =
true
;
}
return
b;
}
//取钱
public
boolean
quMoney(Double money1){
boolean
b =
false
;
if
(money1%
100
==
0
&& money1 <= userMoney){
userMoney = userMoney - money1;
b =
true
;
}
return
b;
}
//只判断用户账户是否存在
public
boolean
anotherUser(String userName1){
boolean
b =
false
;
String inUserName = userName1;
String str = data.backUser(inUserName);
//如果该账户存在
if
(!str.equals(
"null"
)) {
antherUser = str;
//获取被转账账户所有信息
b =
true
;
}
return
b;
}
//进行转账
public
void
giveMoney(Double money1){
String[] str1 = antherUser.split(
"\\*"
);
//分割
Double x = Double.parseDouble(str1[
2
]);
//获取被转账账户余额
x = x + money1;
userMoney = userMoney - money1;
antherUser = changeUser(str1[
0
], str1[
1
], x);
//改变被转账账户信息
data.saveData(antherUser,
false
);
//将用户信息传给Data类保存被转账账户信息
}
//修改密码实现
public
void
changePassword(String newPassword){
userPassword = newPassword;
}
//办完业务后修改用户信息
private
String changeUser(String n,String w,Double d){
String str = n +
"*"
+ w +
"*"
+ d;
return
str;
}
//办完所有业务
public
void
over(){
user = changeUser(userName,userPassword,userMoney);
data.saveData(user,
true
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
package
bank;
import
java.io.*;
import
java.util.HashMap;
import
java.util.Map;
import
java.util.Set;
//数据类是文件和ATM机之间操作用户信息的桥梁
public
class
Data {
//Map储存数据库里所有用户的全部信息
Map<String,String> userData =
new
HashMap();
//返回用户的信息
private
String user;
//创建数据类加载所有用户信息
public
Data(){
getUsers();
}
private
void
getUsers(){
String str;
String[] string;
File file =
new
File(
"src\\bank\\user"
);
FileReader fileReader =
null
;
BufferedReader bufferedReader =
null
;
try
{
fileReader =
new
FileReader(file);
bufferedReader =
new
BufferedReader(fileReader);
while
((str = bufferedReader.readLine())!=
null
){
string = str.split(
"\\*"
,
2
);
userData.put(string[
0
],string[
1
]);
}
}
catch
(Exception e){
e.printStackTrace();
if
((fileReader!=
null
)&&(bufferedReader!=
null
)){
try
{
bufferedReader.close();
fileReader.close();
}
catch
(IOException e1) {
e1.printStackTrace();
}
}
}
}
//告诉用户名,如果找到返回该用户所有信息,没找到返回null
public
String backUser(String userName){
String str =
"null"
;
if
(userData.containsKey(userName))
str = userName +
"*"
+ userData.get(userName);
user = str;
return
user;
}
//修改用户数据并储存在userData图里
public
void
saveData(String user,
boolean
aBoolean){
String[] string = user.split(
"\\*"
,
2
);
userData.remove(string[
0
]);
userData.put(string[
0
],string[
1
]);
if
(aBoolean)
//判断用户是否操作结束
changeUser();
}
//用户操作完,将userData里所有的用户再写入文件里
private
void
changeUser(){
String str,string=
""
;
Set<String> keys = userData.keySet();
for
(String key : keys){
str = key +
"*"
+ userData.get(key);
string = string + str +
"\n"
;
}
File file =
new
File(
"src\\bank\\user"
);
FileWriter out =
null
;
try
{
out =
new
FileWriter(file);
out.write(string);
out.flush();
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
if
(out !=
null
){
try
{
out.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
}
}
|
1
2
3
4
5
|
//user文件
//需要注意文件位置"src\\bank\\user"
李四*234*7500.0
张三*123*13100.0
王五*123*1100.0
|
atmJFrame包 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package
atmJFrame.myJFrame;
import
bank.ATM;
import
javax.swing.*;
import
java.awt.*;
//自己创造的界面的父类
public
class
MyJFrame
extends
JFrame {
//设置字体供子类使用
public
static
final
Font FONT_SIZE_10 =
new
Font(
"宋体"
,Font.PLAIN,
18
);
public
static
final
Font FONT_SIZE_20 =
new
Font(
"宋体"
,Font.PLAIN,
20
);
public
static
final
Font FONT_SIZE_25 =
new
Font(
"宋体"
,Font.PLAIN,
25
);
//给一个静态公共不可改变的ATM对象作为属性,供子类使用
public
static
final
ATM atm =
new
ATM();
//创建窗体
public
MyJFrame(String title){
super
(title);
//设置窗体不可改变
setResizable(
false
);
//设置窗体大小
setSize(
600
,
600
);
//设置窗体居中
setLocationRelativeTo(
null
);
}
//无参构造,创建无标题窗体
public
MyJFrame(){
this
(
""
);
}
//设置弹窗方法供子类使用(传入字符串并显示出)
protected
void
showMessageDialog(String str){
JOptionPane.showMessageDialog(
this
,str);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
package
atmJFrame.myJFrame;
import
javax.swing.*;
import
java.awt.*;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
//登录界面继承MyJFrame
public
class
LoginJFrame
extends
MyJFrame {
public
LoginJFrame(){
super
(
"欢迎使用ATM机"
);
//设置窗体可关闭
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置组件
init();
//界面可视化
setVisible(
true
);
}
//初始化界面
private
void
init(){
//创建面板对象,并定义为空布局
JPanel jp =
new
JPanel(
null
);
//添加标签
JLabel jl1 =
new
JLabel(
"账号:"
);
JLabel jl2 =
new
JLabel(
"密码:"
);
//设置标签字体
jl1.setFont(FONT_SIZE_20);
jl2.setFont(FONT_SIZE_20);
//设置标签在面板中的位置
jl1.setBounds(
100
,
100
,
70
,
70
);
jl2.setBounds(
100
,
250
,
70
,
70
);
//添加文本框
JTextField jtf =
new
JTextField(
20
);
//添加密码文本框
JPasswordField jpf =
new
JPasswordField(
20
);
//设置文本框位置
jtf.setBounds(
200
,
115
,
200
,
40
);
jpf.setBounds(
200
,
265
,
200
,
40
);
//添加按钮
JButton jb =
new
JButton(
"登录"
);
//设置按钮文字大小
jb.setFont(FONT_SIZE_20);
//设置按钮位置及大小
jb.setBounds(
250
,
400
,
100
,
50
);
//设置面板背景颜色
jp.setBackground(Color.YELLOW);
//内部类进行事件处理
jb.addActionListener(
new
ActionListener() {
@Override
public
void
actionPerformed(ActionEvent e) {
//获取输入的账号和密码
String userName = jtf.getText();
String userPassword =
new
String(jpf.getPassword());
//验证是否正确
boolean
aBoolean = atm.login(userName,userPassword);
if
(aBoolean){
//登录成功
dispose();
//关闭登录界面
//打开功能界面
new
WorkingJFrame();
}
else
showMessageDialog(
"账号或密码错误"
);
//调用父类弹窗方法
}
});
//添加组件
jp.add(jl1);
jp.add(jtf);
jp.add(jl2);
jp.add(jpf);
jp.add(jb);
//窗体添加面板
add(jp);
}
public
static
void
main(String[] args) {
new
LoginJFrame();
//先创建登录界面
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
package
atmJFrame.myJFrame;
import
javax.swing.*;
import
java.awt.*;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
//功能界面
public
class
WorkingJFrame
extends
MyJFrame {
public
WorkingJFrame(){
super
(
"功能界面"
);
init();
setVisible(
true
);
}
//初始化功能界面
private
void
init(){
//设置第一个面板对象
JPanel jp1 =
new
JPanel();
//创建标签,将标签添加到第一个面板上
JLabel jb =
new
JLabel(
"请选择要进行的操作:"
);
jb.setFont(FONT_SIZE_25);
//设置标签字体大小
jp1.add(jb);
jp1.setBackground(Color.CYAN);
//将第一个面板添加到窗体上方(JFrame窗体是边界布局)
add(jp1, BorderLayout.NORTH);
//创建第二个面板对象(空布局,自己设置按钮位置及大小),然后将按钮添加
JPanel jp2 =
new
JPanel(
null
);
//字符串数组存储各个按钮名字,然后循环设置按钮名字
String[] str = {
"1、余额查询"
,
"2、取钱"
,
"3、存钱"
,
"4、转账"
,
"5、修改密码"
,
"6、退出系统"
};
//int二维数组储存各个按钮位置及大小信息,循环设置
int
[][] xy =
new
int
[][]{{
50
,
100
,
200
,
50
},{
350
,
100
,
200
,
50
},{
50
,
200
,
200
,
50
},{
350
,
200
,
200
,
50
},{
50
,
300
,
200
,
50
},{
350
,
300
,
200
,
50
}};
for
(
int
i =
0
;i < str.length;i ++){
JButton jButton =
new
JButton(str[i]);
//创建按钮
jButton.setFont(FONT_SIZE_20);
//设置按钮字体大小
jButton.setBounds(xy[i][
0
],xy[i][
1
],xy[i][
2
],xy[i][
3
]);
//设置按钮位置及大小
jButton.addActionListener(listener);
//按钮注册监听器
jp2.add(jButton);
//将按钮添加
}
//设置jp2背景颜色
jp2.setBackground(Color.GRAY);
//将第二个面板添加到窗体(JFrame窗体中间)
add(jp2);
}
//创建事件监听器
private
ActionListener listener =
new
ActionListener() {
@Override
public
void
actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
//获取按钮上的字
//switch选择功能,且每次功能结束回到该界面,关闭已操作完的功能界面
switch
(actionCommand){
case
"1、余额查询"
:
getMoney();
break
;
case
"2、取钱"
:
quMoney();
break
;
case
"3、存钱"
:
cunMoney();
break
;
case
"4、转账"
:
giveMoney();
break
;
case
"5、修改密码"
:
changePassword();
break
;
case
"6、退出系统"
:
over();
break
;
}
}
};
//查询余额功能
private
void
getMoney(){
showMessageDialog(
"您的账户余额为:"
+ atm.getMoney1());
//调用父类方法弹窗
}
//取钱功能
private
void
quMoney(){
new
QuMoneyJFrame();
//创建取钱界面
dispose();
//关闭该界面
}
//存钱功能
private
void
cunMoney(){
new
CunMoneyJFrame();
dispose();
}
//转账功能
private
void
giveMoney(){
new
GiveMoneyJFrame();
dispose();
}
//修改密码功能
private
void
changePassword(){
new
ChangePasswordJFrame();
dispose();
}
//退出系统功能
private
void
over(){
atm.over();
//调用方法操作文件
dispose();
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
package
atmJFrame.myJFrame;
import
javax.swing.*;
import
java.awt.*;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
java.util.regex.Matcher;
import
java.util.regex.Pattern;
//中间窗口,存钱、取钱、转账、修改密码界面的父类
public
class
CentreJFrame
extends
MyJFrame {
//空布局面板,自己设置组件位置及大小
protected
JPanel jp =
new
JPanel(
null
);
//输入金额标签
protected
JLabel jl =
new
JLabel(
"请输入金额:"
);
//输入金额文件框
protected
JTextField jtf =
new
JTextField(
20
);
//确认、取消按钮
protected
JButton jb1 =
new
JButton(
"确认"
);
protected
JButton jb2 =
new
JButton(
"取消"
);
//转账时转账账号标签
protected
JLabel jLabel =
new
JLabel(
"请输入转账账号:"
);
//转账时转账账号文本框
protected
JTextField jTextField =
new
JTextField(
20
);
//修改密码时新密码标签
protected
JLabel jLabelCP =
new
JLabel(
"请输入新密码(只能为数字):"
);
//修改密码时新密码文本框
protected
JTextField jTextFieldCP =
new
JTextField(
20
);
//提醒用户输入金额为100的倍数
private
JLabel jle =
new
JLabel(
"( 提示:只能输入100的倍数 )"
);
public
CentreJFrame(String str){
super
(str);
//判断要进行的操作
if
(str.equals(
"转账"
))
init1();
else
if
(str.equals(
"修改密码"
))
init2();
else
init();
one();
//最后调用共有
}
//取钱和取钱特有组件
private
void
init(){
//输入金额标签,设置字体,位置及大小
jl.setFont(FONT_SIZE_25);
jl.setBounds(
100
,
100
,
200
,
100
);
//输入金额文本框
jtf.setBounds(
300
,
250
,
200
,
50
);
//添加输入金额标签和输入金额文本框
jp.add(jl);
jp.add(jtf);
setJLE();
}
//转账特有组件
private
void
init1(){
init();
//输入账户标签
jLabel.setFont(FONT_SIZE_25);
jLabel.setBounds(
100
,
10
,
200
,
40
);
//输入账户文本
jTextField.setBounds(
300
,
80
,
200
,
50
);
//添加输入账户标签和输入账户文本
jp.add(jLabel);
jp.add(jTextField);
}
//修改密码特有组件
private
void
init2(){
//输入新密码标签
jLabelCP.setFont(FONT_SIZE_25);
jLabelCP.setBounds(
50
,
100
,
400
,
70
);
//输入新密码文本框
jTextFieldCP.setBounds(
300
,
215
,
200
,
40
);
//添加输入新密码标签和输入新密码文本框
jp.add(jLabelCP);
jp.add(jTextFieldCP);
}
//共有组件及操作
private
void
one(){
//按钮设置
jb1.setFont(FONT_SIZE_20);
jb2.setFont(FONT_SIZE_20);
jb1.setBounds(
300
,
350
,
100
,
50
);
jb2.setBounds(
450
,
350
,
100
,
50
);
jp.add(jb1);
jp.add(jb2);
jp.setBackground(Color.GREEN);
jb1.addActionListener(listener);
jb2.addActionListener(listener);
//添加到窗体
add(jp);
setVisible(
true
);
}
//设置提示
private
void
setJLE(){
jle.setFont(FONT_SIZE_10);
jle.setBounds(
100
,
180
,
300
,
50
);
jp.add(jle);
}
//创建监听器
private
ActionListener listener =
new
ActionListener() {
@Override
public
void
actionPerformed(ActionEvent e) {
//按钮被点击后
String actionCommand = e.getActionCommand();
//获取按钮上的字
switch
(actionCommand){
case
"确认"
:
change();
break
;
case
"取消"
:
new
WorkingJFrame();
//创建功能界面
dispose();
//关闭此界面
break
;
}
}
};
//点击确认按钮执行的操作,子类重写覆盖实现各自功能
protected
void
change(){
}
//正则表达式判断输入是否为数字
protected
boolean
isNumber(String str){
Pattern pattern = Pattern.compile(
"[0-9]*"
);
Matcher isNum = pattern.matcher(str);
if
(!isNum.matches())
return
false
;
return
true
;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package
atmJFrame.myJFrame;
//取钱界面
public
class
QuMoneyJFrame
extends
CentreJFrame {
public
QuMoneyJFrame(){
super
(
"取钱"
);
}
protected
void
change(){
String s = jtf.getText();
if
(isNumber(s)){
Double money = Double.parseDouble(s);
boolean
b = atm.quMoney(money);
if
(b){
showMessageDialog(
"请收好您的钱\n您的账户余额为:"
+ atm.getMoney1());
}
else
showMessageDialog(
"您输入有误"
);
}
else
showMessageDialog(
"您输入有误"
);
jtf.setText(
""
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package
atmJFrame.myJFrame;
//存钱界面
public
class
CunMoneyJFrame
extends
CentreJFrame {
public
CunMoneyJFrame(){
super
(
"存钱"
);
}
protected
void
change(){
String s = jtf.getText();
if
(isNumber(s)){
Double money = Double.parseDouble(s);
boolean
b = atm.saveMoney(money);
if
(b)
showMessageDialog(
"您的钱钱已存入\n您的账户余额为:"
+ atm.getMoney1());
else
showMessageDialog(
"您输入有误"
);
}
else
showMessageDialog(
"您输入有误"
);
jtf.setText(
""
);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package
atmJFrame.myJFrame;
//转账界面
public
class
GiveMoneyJFrame
extends
CentreJFrame {
public
GiveMoneyJFrame(){
super
(
"转账"
);
}
protected
void
change(){
String s = jTextField.getText();
boolean
b = atm.anotherUser(s);
if
(b){
//获取输入金额
String s1 = jtf.getText();
if
(isNumber(s1)){
//如果输入是数字
Double money = Double.parseDouble(s1);
atm.giveMoney(money);
showMessageDialog(
"钱已转入\n您的账户余额为:"
+ atm.getMoney1());
}
else
showMessageDialog(
"您输入有误"
);
}
else
showMessageDialog(
"您输入有误"
);
new
WorkingJFrame();
//创建功能界面
dispose();
//关闭此界面
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package
atmJFrame.myJFrame;
//修改密码界面
public
class
ChangePasswordJFrame
extends
CentreJFrame{
public
ChangePasswordJFrame(){
super
(
"修改密码"
);
}
protected
void
change(){
String s = jTextFieldCP.getText();
if
(isNumber(s)){
atm.changePassword(s);
showMessageDialog(
"密码修改成功"
);
}
else
showMessageDialog(
"您输入有误"
);
new
WorkingJFrame();
//创建功能界面
dispose();
//关闭此界面
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/weixin_46085748/article/details/112490606 。
最后此篇关于java GUI实现ATM机系统(3.0版)的文章就讲到这里了,如果你想了解更多关于java GUI实现ATM机系统(3.0版)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!