拜求java小程序每行解释及功能实现(急)

拜求java小程序每行解释及功能实现(急),第1张

import java.awt.BorderLayout

import java.awt.Container

import java.awt.GridLayout

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JPanel

import javax.swing.JTextField

/**

* 计算器的界面

*/

public class JiSuan extends JFrame {

/** 版本信息ID */

private static final long serialVersionUID = 1L

/** 界面上按键的数字 */

private final String[] NUMBER = { "9", "8", "7", "6", "5", "4", "3", "2",

"1", "0", "+/-", "." }

/** 界面行的运算符号 */

private final String[] KEYS = { "/", "sqrt", "*", "%", "-", "1/x", "+", "=" }

/** 界面行耐知的其他命令 */

private final String[] COMMAND = { "Backspace", "CE", "C" }

/** 界面行的存储命令名 */

private final String[] M = { " ", "MC", "MR", "MS", "M+" }

/** 数字按钮 */

private JButton number[] = new JButton[NUMBER.length]

/** 运算符按钮 */

private JButton keys[] = new JButton[KEYS.length]

/** 其他指令按钮 */

private JButton command[] = new JButton[COMMAND.length]

/** 存储功能按钮 */

private JButton m[] = new JButton[M.length]

/** 文本框,用于模拟计算器的显示屏 */

private JTextField jt = new JTextField("0")

/**

* 构造函数

*/

public JiSuan() {

Container container = getContentPane()// 获取显示容器

container.setLayout(new BorderLayout())// 设置容器的布局管理器

JPanel p1 = new JPanel()// 创建数字按钮面板

p1.setLayout(new GridLayout(4, 3))// 设置面板的布局管理器为GridLayout

// 循环添加数码槐字按钮

for (int i = 0i <NUMBER.lengthi++) {

number[i] = new JButton(NUMBER[i])//创建一个按钮

p1.add(number[i])//将按钮添加到面板上

}

JPanel p2 = new JPanel(new BorderLayout())// 创建运算符按钮面板

p2.setLayout(new GridLayout(4, 2))// 设置面板的布局管理器为GridLayout

// 循环添加运算符按钮

for (int i = 0i <KEYS.lengthi++) {

keys[i] = new JButton(KEYS[i])//创建一个按钮

p2.add(keys[i])//将按钮添加到面板上

}

JPanel p3 = new JPanel(new BorderLayout())// 创建存储功能按钮面板

p3.setLayout(new GridLayout(4, 1))// 设置面板的布局管理器为GridLayout

// 循环添加迟亩友存储功能按钮

for (int i = 0i <M.lengthi++) {

m[i] = new JButton(M[i])//创建一个按钮

p3.add(m[i])//将按钮添加到面板上

}

JPanel p4 = new JPanel(new BorderLayout())// 创建一个总的面板,将前面创建的3个面板加入到其中

p4.add(p3, BorderLayout.WEST)//加入存储功能按钮面板,在左边

p4.add(p1, BorderLayout.CENTER)//加入数字按钮面板,在中间

p4.add(p2, BorderLayout.EAST)//加入运算符按钮面板,在右边

JPanel p5 = new JPanel(new BorderLayout())// 创建其他功能按钮面板

p5.setLayout(new GridLayout(1, 3))// 设置面板的布局管理器为GridLayout

// 循环添加其他功能按钮

for (int i = 0i <COMMAND.lengthi++) {

command[i] = new JButton(COMMAND[i])//创建一个按钮

p5.add(command[i])//将按钮添加到面板上

}

JPanel p6 = new JPanel(new BorderLayout())// 创建一个总的面板,将前面创建的2个面板和用做屏幕的文本框加入到其中

p6.add(jt, BorderLayout.NORTH)// 加入文本框,在上面

p6.add(p5, BorderLayout.CENTER)//加入其他功能按钮面板,在中间

p6.add(p4, BorderLayout.SOUTH)// 加入上面创建的按钮总面板,在下面

container.add(p6, BorderLayout.EAST)//将完整的计算器界面加入显示容器中

container.add(new JButton("开发中..."), BorderLayout.CENTER)// 在显示容器中添加一个按钮,按钮文字为开发中...

}

/**

* 主函数入口

*

* @param args

*/

public static void main(String[] args) {

JiSuan ji = new JiSuan()// 创建一个计算器界面

ji.setTitle("窗口布局")// 设置TItle

ji.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)// 设置默认的关闭动作

ji.setSize(400, 200)// 设置计算器窗口的尺寸

ji.setVisible(true)// 将计算器界面显示出来

}

}

不知核锋手基档道你为什么要用这个 流 DataInputStream sin = new DataInputStream(System.in)

你程序没反应是你读的时候一改嫌直阻塞着。你用 BufferedReader试试 肯定有反应。

(一)总感觉点“猜”那个按钮,去试着猜了几次,好象还是有问题

"猜"的毛病是,每次按"猜"的时候,nextInt都重新计数了.只要把num2放到方法外面就可以了.

Random ra=new Random()

int num2=ra.nextInt(1000)

public void rd(String str)

{

int num=Integer.parseInt(str)

if(num>num2)

(二)要使另外2个按钮都起作用,代码该写在哪个地方,我都搞不清楚答判困

代码有两个地方可放,一是放在addActionListener里面,二是单独写个类或方法,然后用addActionListener,后面这个对多个listener特别好用.

(三) 希望帮我修改一下这段程序,怎样才最为合理!

如果IF 语句后面只有一句话,无需加{},当然回了也不为过.

只是小小的改动清念了一下,增加了bt2,bt3的动作,不会再出现什么大错误了冲誉.

import java.awt.*

import javax.swing.*

import java.awt.event.*

import java.util.*

public class sw extends JFrame implements java.awt.event.ActionListener

{

private JButton btn1,btn2,btn3

private JTextField txt

private JLabel lbl

public sw()

{

btn1=new JButton("猜")

btn2=new JButton("重新游戏")

btn3=new JButton("退出游戏")

txt=new JTextField()

lbl=new JLabel("请输入1000以内的整数,进行猜数字游戏!")

JPanel pa=new JPanel()

pa.add(btn1,BorderLayout.EAST)

pa.add(btn2,BorderLayout.CENTER)

pa.add(btn3,BorderLayout.WEST)

btn1.addActionListener(this)//注册

btn2.addActionListener(new ActionListener() { //清空更像是重新游戏,而且也不影响猜得到数字

public void actionPerformed(ActionEvent e) {

txt.setText("")

}

} )

btn3.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

dispose()

}

} )

this.setTitle("小游戏")

this.setSize(350,250)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

Container me=this.getContentPane()

me.add(txt,BorderLayout.NORTH)

me.add(pa,BorderLayout.SOUTH)

me.add(lbl,BorderLayout.CENTER)

this.setVisible(true)

}

public void actionPerformed(ActionEvent ae)

{

String str = txt.getText()

rd(str)

}

Random ra=new Random()

int num2=ra.nextInt(1000)

public void rd(String str)

{

int num=Integer.parseInt(str)

if(num>num2)

{

lbl.setText("太大了!")

}

if(num<num2)

{

lbl.setText("太小了!")

}

if(num==num2)

{

lbl.setText("恭喜!答对了!")

}

}

public static void main(String[] args)

{

new sw()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12237365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存