java计算器的小问题...连续运算

terryboge 2009-12-31 10:32:36
本人是个菜鸟初学者来的..自己写了个计算器..使用时其他没什么问题..就是连续按等号时无法像系统自带的计算器那样连续运算...也就是说如果按 27/3 第一次按等号会出现9,第二次按等号会出现3,第三次按等号后就又输出9了...求高人们解释下..以下是代码..



import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2009</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class FrmLayout extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel pnlNorth = new JPanel();
JPanel pnlCenter1 = new JPanel();
JPanel pnlEast = new JPanel();
JPanel pnlSouth = new JPanel();
JPanel pnlWest = new JPanel();
JTextField txt = new JTextField();
GridLayout gridLayout1 = new GridLayout();
JButton btn7 = new JButton();
JButton btnC = new JButton();
JButton btnEqu = new JButton();
JButton btnDiv = new JButton();
JButton btn0 = new JButton();
JButton btnMul = new JButton();
JButton btn3 = new JButton();
JButton btn2 = new JButton();
JButton btn1 = new JButton();
JButton btnSub = new JButton();
JButton btn6 = new JButton();
JButton btn5 = new JButton();
JButton btn4 = new JButton();
JButton btnAdd = new JButton();
JButton btn9 = new JButton();
JButton btn8 = new JButton();
//定义变量
double n1;
double n2;
double result;
double n3;
char op;
boolean flag=true;//代表重新输入数字
boolean flag2=true; //代表是否有运算结果

JPanel pnlCenter = new JPanel();
JPanel pnlCenter2 = new JPanel();
FlowLayout flowLayout1 = new FlowLayout();
JButton btnSqrt = new JButton();
JButton btnchange = new JButton();
JButton btnpoint = new JButton();
JButton btnpencent = new JButton();
JButton btnd = new JButton();
JButton btnCE = new JButton();
JButton btnback = new JButton();
public FrmLayout() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}

/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
this.setForeground(Color.black);
setSize(new Dimension(369, 370));
setTitle("计算器");

txt.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
//禁用编辑
txt.setEditable(false);
txt.setText("");
txt.setHorizontalAlignment(SwingConstants.RIGHT);
txt.setBounds(new Rectangle(19, 27, 313, 38));

gridLayout1.setColumns(5);
gridLayout1.setHgap(10);
gridLayout1.setRows(4);
gridLayout1.setVgap(10);

//3--监听器注册
btn0.addActionListener(new FrmLayout_btn0_actionAdapter(this));
btn0.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn0.setText("0");
btn1.setText("1");
btn1.addActionListener(new FrmLayout_btn1_actionAdapter(this));
btn1.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn2.setText("2");
btn2.addActionListener(new FrmLayout_btn2_actionAdapter(this));
btn2.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn3.setText("3");
btn3.addActionListener(new FrmLayout_btn3_actionAdapter(this));
btn3.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn4.setText("4");
btn4.addActionListener(new FrmLayout_btn4_actionAdapter(this));
btn4.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn5.setText("5");
btn5.addActionListener(new FrmLayout_btn5_actionAdapter(this));
btn5.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn6.setText("6");
btn6.addActionListener(new FrmLayout_btn6_actionAdapter(this));
btn6.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn7.setText("7");
btn7.addActionListener(new FrmLayout_btn7_actionAdapter(this));
btn8.setText("8");
btn8.addActionListener(new FrmLayout_btn8_actionAdapter(this));
btn8.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btn9.setText("9");
btn9.addActionListener(new FrmLayout_btn9_actionAdapter(this));
btn9.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btnAdd.setText("+");
btnAdd.addActionListener(new FrmLayout_btnAdd_actionAdapter(this));
btnAdd.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btnSub.setText("-");
btnSub.addActionListener(new FrmLayout_btnSub_actionAdapter(this));
btnSub.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btnMul.setText("*");
btnMul.addActionListener(new FrmLayout_btnMul_actionAdapter(this));
btnMul.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btnDiv.setText("/");
btnDiv.addActionListener(new FrmLayout_btnDiv_actionAdapter(this));
btnDiv.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
btnC.setText("C");
btnC.addActionListener(new FrmLayout_btnC_actionAdapter(this));
btnC.setFont(new java.awt.Font("Dialog", Font.BOLD | Font.ITALIC, 14));
btnC.setForeground(Color.red);
btnC.setMaximumSize(new Dimension(71, 25));
btnC.setMinimumSize(new Dimension(71, 25));
btnC.setPreferredSize(new Dimension(90, 25));
btnEqu.setText("=");
btnEqu.addActionListener(new FrmLayout_btnEqu_actionAdapter(this));
pnlCenter.setLayout(null);
pnlCenter2.setBounds(new Rectangle(14, 19, 314, 33));
pnlCenter2.setLayout(flowLayout1);
flowLayout1.setHgap(3);
btnSqrt.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
btnSqrt.setToolTipText("");
btnSqrt.setText("Sqrt");
btnSqrt.addActionListener(new FrmLayout_btnSqrt_actionAdapter(this));
btnchange.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
btnchange.setToolTipText("");
btnchange.setText("+/-");
btnchange.addActionListener(new FrmLayout_btnchange_actionAdapter(this));
btnpoint.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
btnpoint.setText(".");
btnpoint.addActionListener(new FrmLayout_btnpoint_actionAdapter(this));
btnpencent.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
btnpencent.setToolTipText("");
btnpencent.setText("%");
btnpencent.addActionListener(new FrmLayout_btnpencent_actionAdapter(this));
btnd.setFont(new java.awt.Font("Dialog", Font.BOLD, 11));
btnd.setToolTipText("");
btnd.setText("1/x");
btnd.addActionListener(new FrmLayout_btnd_actionAdapter(this));
btnCE.setFont(new java.awt.Font("Dialog", Font.BOLD | Font.ITALIC, 11));
btnCE.setForeground(Color.red);
btnCE.setPreferredSize(new Dimension(90, 25));
btnCE.setText("CE");
btnCE.addActionListener(new FrmLayout_jButton1_actionAdapter(this));
btnback.setFont(new java.awt.Font("Dialog", Font.BOLD | Font.ITALIC, 11));
btnback.setForeground(Color.red);
btnback.setMaximumSize(new Dimension(81, 25));
btnback.setMinimumSize(new Dimension(81, 25));
btnback.setText("BACKSPACE");
btnback.addActionListener(new FrmLayout_btnback_actionAdapter(this));
pnlCenter1.setBounds(new Rectangle(0, 59, 333, 199));
contentPane.add(pnlSouth, java.awt.BorderLayout.SOUTH);
contentPane.add(pnlWest, java.awt.BorderLayout.WEST);
contentPane.add(pnlEast, java.awt.BorderLayout.EAST);
pnlNorth.setPreferredSize(new Dimension(10, 70));
pnlNorth.setLayout(null);
pnlCenter1.setBorder(BorderFactory.createEtchedBorder());
pnlCenter1.setLayout(gridLayout1);
pnlCenter1.add(btn7);
pnlCenter1.add(btn8);
pnlCenter1.add(btn9);
pnlCenter1.add(btnDiv);
pnlCenter1.add(btnSqrt);
pnlCenter1.add(btn4);
pnlCenter1.add(btn5);
pnlCenter1.add(btn6);
pnlCenter1.add(btnMul);
pnlCenter1.add(btnpencent);
pnlCenter1.add(btn1);
pnlCenter1.add(btn2);
pnlCenter1.add(btn3);
pnlCenter1.add(btnSub);
pnlCenter1.add(btnd);
pnlCenter1.add(btn0);
pnlCenter1.add(btnchange);
pnlCenter1.add(btnpoint);
pnlCenter1.add(btnAdd);
pnlCenter1.add(btnEqu);
pnlCenter.add(pnlCenter2);
pnlCenter2.add(btnback);
pnlCenter2.add(btnCE);
pnlCenter2.add(btnC);
pnlCenter.add(pnlCenter1);
contentPane.add(pnlNorth, java.awt.BorderLayout.NORTH);
pnlNorth.add(txt);
contentPane.add(pnlCenter, java.awt.BorderLayout.CENTER);
}
//2--按钮事件处理方法
public void btn0_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("0");
flag=false;
}else{
if (txt.getText().equals("0")) {
txt.setText("0");
} else {
txt.setText(txt.getText() + "0");
}
}
}

...全文
213 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovefengyu 2009-12-31
  • 打赏
  • 举报
回复
太长 no help
Dazzlingwinter 2009-12-31
  • 打赏
  • 举报
回复
Too Long,扫一眼超过1分钟看不完,就帮不上忙了
liquoryellow 2009-12-31
  • 打赏
  • 举报
回复
函数过长,不符合代码规范。。。我是质量部的,哈哈
kyousuke 2009-12-31
  • 打赏
  • 举报
回复
而且代码还不带注释,太囧了
苍蝇①号 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jungle1171 的回复:]
太长。。。
这样贴太多东西求助的后果大家都知道。。。
就是无果~
[/Quote]
读完天都亮了,还让不让人睡觉了
lovepay1413 2009-12-31
  • 打赏
  • 举报
回复
把运算符跟运算符后面的那个数保存起来嘛。。。。就是你例子的"/"跟 "3"
用结果代替第一次输入的那个值 "27" 按一次"="就再算一次呗。。。
xiezhifu 2009-12-31
  • 打赏
  • 举报
回复
贴出代码应该是用代码插件贴出来。

你的代码就不看了,给个思路给你:
按照要求,应该使用四个变量分别保存第一个数(a)、运算符(%)、第二个数(b)和结果(s)
第一次按下等号-->显示s
连续按下等号-->s=s%b ,如果s为无效结果,s=a%b,否则显示s
holsten32 2009-12-31
  • 打赏
  • 举报
回复
bobo364 2009-12-31
  • 打赏
  • 举报
回复
这个问题以前我问过,别人给我的答案是要建个堆栈,但实现起来太复杂,很多是用数据结构写的,只能在此给楼主一个思路了
jungle1171 2009-12-31
  • 打赏
  • 举报
回复
太长。。。
这样贴太多东西求助的后果大家都知道。。。
就是无果~
terryboge 2009-12-31
  • 打赏
  • 举报
回复
class FrmLayout_btnpencent_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnpencent_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnpencent_actionPerformed(e);
}
}


class FrmLayout_btnSqrt_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnSqrt_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnSqrt_actionPerformed(e);
}
}


class FrmLayout_btn9_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn9_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn9_actionPerformed(e);
}
}


class FrmLayout_btn8_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn8_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn8_actionPerformed(e);
}
}


class FrmLayout_btn7_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn7_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn7_actionPerformed(e);
}
}


class FrmLayout_btn6_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn6_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn6_actionPerformed(e);
}
}


class FrmLayout_btn5_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn5_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn5_actionPerformed(e);
}
}


class FrmLayout_btn4_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn4_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn4_actionPerformed(e);
}
}


class FrmLayout_jButton1_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_jButton1_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}


class FrmLayout_btnC_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnC_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnC_actionPerformed(e);
}
}


class FrmLayout_btnDiv_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnDiv_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnDiv_actionPerformed(e);
}
}


class FrmLayout_btnMul_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnMul_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnMul_actionPerformed(e);
}
}


class FrmLayout_btnEqu_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnEqu_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnEqu_actionPerformed(e);
}
}


class FrmLayout_btnchange_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnchange_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnchange_actionPerformed(e);
}
}


class FrmLayout_btnAdd_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnAdd_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {

adaptee.btnAdd_actionPerformed(e);
}
}


class FrmLayout_btnSub_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnSub_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnSub_actionPerformed(e);
}
}


class FrmLayout_btn2_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn2_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn2_actionPerformed(e);
}
}


class FrmLayout_btn1_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn1_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn1_actionPerformed(e);
}
}


class FrmLayout_btn3_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn3_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn3_actionPerformed(e);
}
}


//1--按钮监听器
class FrmLayout_btn0_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btn0_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btn0_actionPerformed(e);
}
}
}


class FrmLayout_btnback_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnback_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {

adaptee.btnback_actionPerformed(e);
}
}


作业来的..帮帮忙
terryboge 2009-12-31
  • 打赏
  • 举报
回复
public void btn1_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("1");
flag=false;
}else{
txt.setText(txt.getText() + "1");
}
}

public void btn2_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("2");
flag=false;
}else{
txt.setText(txt.getText() + "2");
}
}

public void btnAdd_actionPerformed(ActionEvent e) {
//--1 保存第一个操作数
n1=Double.parseDouble(txt.getText());
//--2 清空文本框
txt.setText("");
//--3 保存运算符
op='+';
}

public void btnEqu_actionPerformed(ActionEvent e) {
//--1 保存第二个数
n2=Double.parseDouble(txt.getText());
//--2 计算
switch(op){
case '+':
result=n1+n2;
break;
case '-':
txt.setText("" +(n1-n2));
result=n1-n2;
break;
case '*':
result=n1*n2;
break;
case '/':
if(n2==0){
clearAll();
txt.setText("除数不能为零");
flag2=false;//没有运算结果
}else{
result = n1 / n2;
}
break;
default:
result=Double.parseDouble(txt.getText());
}
if(flag2){
//--3 显示结果
txt.setText("" + result);
}
//--4 改变标志位
flag=true;
flag2=true;
}
//初始化方法(重置)
public void clearAll(){
n1=0;
n2=0;
result=0;
op=' ';
flag=true;
flag2=true;
txt.setText("");
}


public void btnSub_actionPerformed(ActionEvent e) {
//--1 保存第一个操作数
n1=Double.parseDouble(txt.getText());
//--2 清空文本框
txt.setText("");
//--3 保存运算符
op='-';
}

public void btnMul_actionPerformed(ActionEvent e) {
//--1 保存第一个操作数
n1=Double.parseDouble(txt.getText());
//--2 清空文本框
txt.setText("");
//--3 保存运算符
op='*';
}

public void btnDiv_actionPerformed(ActionEvent e) {
//--1 保存第一个操作数
n1=Double.parseDouble(txt.getText());
//--2 清空文本框
txt.setText("");
//--3 保存运算符
op='/';
}

public void btnC_actionPerformed(ActionEvent e) {
clearAll();
}

public void jButton1_actionPerformed(ActionEvent e) {
txt.setText("");
}

public void btn3_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("3");
flag=false;
}else{
txt.setText(txt.getText() + "3");
}
}

public void btn4_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("4");
flag=false;
}else{
txt.setText(txt.getText() + "4");
}
}

public void btn5_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("5");
flag=false;
}else{
txt.setText(txt.getText() + "5");
}
}

public void btn6_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("6");
flag=false;
}else{
txt.setText(txt.getText() + "6");
}
}

public void btn7_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("7");
flag=false;
}else{
txt.setText(txt.getText() + "7");
}
}

public void btn8_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("8");
flag=false;
}else{
txt.setText(txt.getText() + "8");
}
}

public void btn9_actionPerformed(ActionEvent e) {
if(flag){//重新输入数字
txt.setText("9");
flag=false;
}else{
txt.setText(txt.getText() + "9");
}
}

public void btnSqrt_actionPerformed(ActionEvent e) {
n1=Integer.parseInt(txt.getText());
result=Math.sqrt(n1);
txt.setText(""+result);
flag=true;
flag2=true;
}

public void btnpencent_actionPerformed(ActionEvent e) {
txt.setText(""+Double.parseDouble(txt.getText())*0.01);
flag=true;
}

public void btnd_actionPerformed(ActionEvent e) {
n1=1/Double.parseDouble(txt.getText());
txt.setText(""+n1);
flag=true;
}

public void btnchange_actionPerformed(ActionEvent e) {
n1=-Double.parseDouble(txt.getText());
txt.setText(""+n1);
flag=true;
}

public void btnpoint_actionPerformed(ActionEvent e) {
if(txt.getText().equals("")){
txt.setText("0.");
flag=false;
}
else if(txt.getText().indexOf('.')!=-1){
}
else{
txt.setText(txt.getText()+'.');
}
}

public void btnback_actionPerformed(ActionEvent e) {
if(txt.getText().equals("")){
txt.setText("");
flag=true;
}
else if(txt.getText().equals("")){
txt.setText("");
flag=true;
}

else{
StringBuffer s= new StringBuffer(txt.getText());
txt.setText(s.delete(s.length()-1,s.length()).toString());
}
}


class FrmLayout_btnpoint_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnpoint_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnpoint_actionPerformed(e);
}
}


class FrmLayout_btnd_actionAdapter implements ActionListener {
private FrmLayout adaptee;
FrmLayout_btnd_actionAdapter(FrmLayout adaptee) {
this.adaptee = adaptee;
}

public void actionPerformed(ActionEvent e) {
adaptee.btnd_actionPerformed(e);
}
}


gao11811 2009-12-31
  • 打赏
  • 举报
回复
拉了好9,干吗不用格式贴

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧