站内搜索: 请输入搜索关键词

当前页面: JAVA 编程资料牛鼻论坛Java & J2SE 技术区→java问题

java问题

发表新主题   回复此主题

第1楼 2007-09-12 01:16 落雨零澜 写道:

java问题

请求java动态小程序

滚动的小球或者图形的自动变形(圆变方,变三角),计算器,计时器之类……

可以用 j buider 运行的

万分感谢

第2楼 2013-08-31 12:44 Robot :

java问题 相关


第3楼 2007-09-14 13:49 xieyou 写道:

我编了个计时器:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Timer extends JFrame implements ActionListener,Runnable
{
private JTextField text_timer;
private JButton button_start,button_pause,button_stop;
private Thread TimerThread;
public int changedata(String str)
{
int x=(str.charAt(0)-48)*10+str.charAt(1)-48;
return x;
}
public void addone()
{
String str1=text_timer.getText(),strh,strm,strs,strl;
int h,m,s,l;
h=changedata(str1.substring(0,2));
m=changedata(str1.substring(3,5));
s=changedata(str1.substring(6,8));
l=changedata(str1.substring(9,11))+1;
if(l==100)
{
l=0;
s=s+1;
}
if(s==60)
{
s=0;
m=m+1;
}
if(m==60)
{
m=0;
h=h+1;
}
if(h<10)
{
strh="0"+h;
}
else
{
strh=""+h;
}
if(m<10)
{
strm="0"+m;
}
else
{
strm=""+m;
}
if(s<10)
{
strs="0"+s;
}
else
{
strs=""+s;
}
if(l<10)
{
strl="0"+l;
}
else
{
strl=""+l;
}
text_timer.setText(strh+":"+strm+":"+strs+":"+strl);
}
public Timer()
{
super("计时器");
this.setSize(200,100);
this.setLocation(300,240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new GridLayout(2,1));
text_timer=new JTextField("00:00:00:00");
button_start=new JButton("start");
button_pause=new JButton("pause");
button_stop=new JButton("stop");
this.add(text_timer);
this.add(button_start);
this.add(button_pause);
this.add(button_stop);
text_timer.addActionListener(this);
button_start.addActionListener(this);
button_pause.addActionListener(this);
button_stop.addActionListener(this);
TimerThread=new Thread(this);
this.setVisible(true);
}
public void run()
{
while(TimerThread.isAlive()&&!TimerThread.isInterrupted())
{
try
{
TimerThread.sleep(10);
addone();
}
catch(InterruptedException e)
{
break;
}
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button_start)
{
button_pause.setEnabled(true);
button_start.setEnabled(false);
button_stop.setEnabled(true);
TimerThread=new Thread(this);
TimerThread.setPriority(10);
TimerThread.start();
}
if(e.getSource()==button_pause)
{
button_pause.setEnabled(false);
button_start.setEnabled(true);
button_stop.setEnabled(true);
TimerThread.interrupt();
}
if(e.getSource()==button_stop)
{
TimerThread.interrupt();
button_pause.setEnabled(false);
button_start.setEnabled(true);
button_stop.setEnabled(false);
text_timer.setText("00:00:00:00");
}
}
public static void main(String arg[])
{
new Timer();
}
}

第4楼 2007-09-19 18:58 秋水长天 写道:

计算器小程序

import javax.swing.*;
import java.awt.Container;
import java.awt.event.*;

public class Calculate_GUI extends JFrame{
private JPanel p1;
private JButton keyButton[]=new JButton[16],signButton,clearButton,deleteButton;
private JTextField outputField;
private Container contentPane;
private boolean firstInput=true;
private Calculate_Model model=new Calculate_Model();

public Calculate_GUI(){
p1=new JPanel();
keyButton[0]=new JButton("1");
keyButton[1]=new JButton("2");
keyButton[2]=new JButton("3");
keyButton[3]=new JButton("/");
keyButton[4]=new JButton("4");
keyButton[5]=new JButton("5");
keyButton[6]=new JButton("6");
keyButton[7]=new JButton("*");
keyButton[8]=new JButton("7");
keyButton[9]=new JButton("8");
keyButton[10]=new JButton("9");
keyButton[11]=new JButton("-");
keyButton[12]=new JButton("0");
keyButton[13]=new JButton(".");
keyButton[14]=new JButton("=");
keyButton[15]=new JButton("+");
clearButton=new JButton("c");
signButton=new JButton("+/-");
deleteButton=new JButton("←");
outputField=new JTextField(15);
outputField.setText("0");
outputField.setEditable(false);
contentPane=this.getContentPane();

this.setSize(250,250);
p1.setLayout(new java.awt.GridLayout(4,5));
for(int i=0;i<keyButton.length;i++){
if(i==4)p1.add(deleteButton);
if(i==8)p1.add(clearButton);
if(i==12)p1.add(signButton);
keyButton[i].setFont(new java.awt.Font("Dialog",1,16));
p1.add(keyButton[i]);
}
contentPane.add(outputField,java.awt.BorderLayout.NORTH);
contentPane.add(p1,java.awt.BorderLayout.CENTER);
this.show();
}
public void registEvent(){
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){System.exit(0);}
});
for(int i=0;i<keyButton.length;i++){
keyButton[i].addActionListener(new keyButtonHandler());
}
signButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
outputField.setText(String.valueOf(model.toSign(Double.parseDouble(outputField.getText()))));
}
});
deleteButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
outputField.setText(model.backSpace(outputField.getText()));
if(outputField.getText().equals("0"))firstInput=true;
}
});
clearButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
firstInput=true;
outputField.setText("0");
model.reset();
}
});
}

class keyButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent ae){
char actionCommand=ae.getActionCommand().charAt(0);
switch(actionCommand){
case '1':case '2':case '3':case '4':case '5': case '6':case '7':case '8':case '9':case '0':case '.':
if(firstInput){outputField.setText(String.valueOf(actionCommand));firstInput=false;}
else outputField.setText(outputField.getText()+actionCommand);
break;
case '+':case '-':case '*':case '/':
if(firstInput)model.setOperate(actionCommand);
else{
model.setOperateNumber(Double.parseDouble(outputField.getText()));
model.calculating();
model.setOperate(actionCommand);
outputField.setText(String.valueOf(model.getResult()));
firstInput=true;
}
break;
case '=':
if(firstInput){
model.calculating();
outputField.setText(String.valueOf(model.getResult()));
}
else{
model.setOperateNumber(Double.parseDouble(outputField.getText()));
model.calculating();
outputField.setText(String.valueOf(model.getResult()));
firstInput=true;
}
} } }

public static void main(String args[]){
new Calculate_GUI().registEvent();
}
}


2 文件名 Calculate_Model.java

public class Calculate_Model{
private double result;
private double operateNumber;
private char operate;

public Calculate_Model(){
result=0;
operateNumber=0;
operate=' ';
}

public void setResult(double n){
result=n;
}
public void setOperate(char o){
operate=o;
}
public void setOperateNumber(double n){
operateNumber=n;
}
public double getResult(){
return result;
}
public void calculating(){
switch(operate){
case ' ':result=operateNumber;break;
case '+':result+=operateNumber;break;
case '-':result-=operateNumber;break;
case '*':result*=operateNumber;break;
case '/':result/=operateNumber;break;
}
}
public void reset(){
result=0;
operateNumber=0;
operate=' ';
}
public double toSign(double n){
return 0-(n-0);
}
public String backSpace(String n){
String reResult="0";
try{
reResult=n.substring(0,n.length()-1);
Double.parseDouble(reResult);
}
catch(NumberFormatException e){reResult="0";}
return reResult;
}
}

两个文件同一目录;

javac Calculate_GUI.java

javac Calculate_Model.java

java Calculate_GUI
该回答在9月19日 16:32由回答者修改过

发表新主题   回复此主题