/计算器/
import javaawt;
import javaxswing;
import javaxswingborder;
import javaawtevent;
public class Calculator implements ActionListener{
JFrame frame;
JPanel panel;
JTextField tfShow;/定义显示文本框/
JButton b1[]=new JButton[10]; /数字按钮/
JButton b2[]=new JButton[6]; / *** 作按钮/
boolean isNumber;/判断是否输入多位数字的变量/
double number;/存储输入数值、显示结果的变量/
double result;/存储中间运算结果的变量/
char operator;/存储当前 *** 作符的成员变量/
public Calculator(){
frame=new JFrame("计算器");
framesetSize(300,300);/指定框架窗口的大小/
framesetResizable(false);/使框架窗口不可改变大小/
JPanel contentPane=(JPanel)framegetContentPane();
contentPanesetBorder(new EmptyBorder(20,20,20,20));/绘制框架的指定大小的空透明边框/
tfShow=new JTextField("0",25);/指定属性的文本域/
tfShowsetHorizontalAlignment(JTextFieldRIGHT);/设置文本域中文本的对齐方式/
isNumber=true;/初始值设置/
number=0;/初始值设置/
result=0;/初始值设置/
operator=' ';/初始值设置/
for(int i=0;i<b1length;i++){
b1[i]=new JButton(IntegertoString(i));/创建数字按钮/
b1[i]setActionCommand(IntegertoString(i));
b1[i]addActionListener(this);
b1[i]setForeground(Colorblue);
}
String bs[]={"/","","-","C","+","="};
for(int i=0;i<b2length;i++){
b2[i]=new JButton(bs[i]);/创建 *** 作按钮/
b2[i]setActionCommand(bs[i]);
b2[i]addActionListener(this);
b2[i]setForeground(Colorred);
}
panel=new JPanel();
panelsetLayout(new GridLayout(4,5));
paneladd(b1[1]);
paneladd(b1[2]);
paneladd(b1[3]);
paneladd(b2[0]);
paneladd(b1[4]);
paneladd(b1[5]);
paneladd(b1[6]);
paneladd(b2[1]);
paneladd(b1[7]);
paneladd(b1[8]);
paneladd(b1[9]);
paneladd(b2[2]);
paneladd(b1[0]);
paneladd(b2[3]);
paneladd(b2[4]);
paneladd(b2[5]);
frameadd(tfShow,BorderLayoutNORTH);/将文本框放置在框架上方/
frameadd(panel,BorderLayoutCENTER);/将装有按钮组的panel放在框架的中心/
framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);/设置框架窗口的默认窗口关闭 *** 作/
framesetVisible(true);/设置框架可见/
}
public double getDisplay(){/返回要显示的结果/
return number;
}
public void reDisplay(){/刷新文本域的内容/
tfShowsetText(""+getDisplay());
}
/对输入数字的处理/
public void numberProcess(int num){
if(isNumber&&num!=0){
String s1=IntegertoString(num);
String s2=IntegertoString((int)(thisnumber));
thisnumber=DoubleparseDouble(s2+s1);/对多位数字的处理/
}else{
thisnumber=num;
}
isNumber=true;/输入连续数字(即多位数字)时为真/
}
public void operationProcess(char operator){/根据输入的 *** 作符改变当前 *** 作符/
switch(operator){
case '-':
thisoperator='-';
break;
case '+':
thisoperator='+';
break;
case '':
thisoperator='';
break;
case '/':
thisoperator='/';
break;
}
result=number;
isNumber=false;/输入 *** 作符时表示输入连续数字的标记变量为假/
}
public void clear(){
number=0;
result=0;
}
public void equal(){/计算运算结果/
switch(operator){
case '-':
result=result-number;
break;
case '+':
result=result+number;
break;
case '':
result=resultnumber;
break;
case '/':
result=result/number;
break;
case ' ':
result=number;
break;
}
number=result; /把运算结果赋值给显示变量/
isNumber=false;
operator=' ';
}
public static void main(String args[]){
Calculator cal=new Calculator();/创建计算器/
}
public void actionPerformed(ActionEvent e){
String command=egetActionCommand();/获取按钮激发的 *** 作事件的命令名称/
char c=commandcharAt(0);/将按钮命令名称的第一个字符赋值给一个字符c/
switch(c){
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
int number=IntegerparseInt(command);
numberProcess(number);/输入数字的处理/
break;
case '+':
case '-':
case '':
case '/':
operationProcess(c);/算数运算符的处理/
break;
case '=':equal();break;/计算运算结果/
case 'C':clear();break;/清零/
}
reDisplay(); /在文本域中显示信息/
}
}
这是我做的一个计算器:运行截图
1,可以自己敲进去
2,可以在调用GetCtrlVal()函数时,在函数面板中坐上角点击“声明变量”,声明你在函数中用到的变量。如下图:
import javaxswing;
import javaawt;
import javaawtevent;
public class Calculator extends JFrame implements ActionListener{
private static final long serialVersionUID = 8199443193151152362L;
private JButton bto_s=new JButton("sqrt"),bto_zf=new JButton("+/-"),bto_ce=new JButton("CE"),bto_c=new JButton("C"),bto_7=new JButton("7"),
bto_8=new JButton("8"),bto_9=new JButton("9"),bto_chu=new JButton("/"),bto_4=new JButton("4"),bto_5=new JButton("5"),
bto_6=new JButton("6"),bto_cheng=new JButton(""),bto_1=new JButton("1"),bto_2=new JButton("2"),bto_3=new JButton("3"),
bto_jian=new JButton("-"),bto_0=new JButton("0"),bto_dian=new JButton(""),bto_deng=new JButton("="),bto_jia=new JButton("+");
JButton button[]={bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,
bto_0,bto_dian,bto_deng,bto_jia};
private JTextField text_double;// = new JTextField("0");
private String operator = "="; //当前运算的运算符
private boolean firstDigit = true; // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
private double resultNum = 00; // 计算的中间结果
private boolean operateValidFlag = true; //判断 *** 作是否合法
public Calculator()
{
super("Calculator");
thissetBounds(300, 300, 300, 300);
thissetResizable(false);
thissetBackground(Colororange);
thissetDefaultCloseOperation(EXIT_ON_CLOSE);
thisgetContentPane()setLayout(new BorderLayout());//设置布局
text_double=new JTextField("0",20);//设置文本区
text_doublesetHorizontalAlignment(JTextFieldRIGHT);//设置水平对齐方式未右对齐
thisgetContentPane()add(text_double,BorderLayoutNORTH);//将文本区添加到Content北部
JPanel panel=new JPanel(new GridLayout(5,4));//在内容窗口添加一个网格布局
thisgetContentPane()add(panel);//添加panel面板
for(int i=0;i<buttonlength;i++)//在面板上添加按钮
paneladd(button[i]);
for(int i=0;i<buttonlength;i++)
button[i]addActionListener(this);//为按钮注册
text_doublesetEditable(false);//文本框不可编辑
text_doubleaddActionListener(this);//
thissetVisible(true);
}
public void actionPerformed(ActionEvent e)//
{
String c= egetActionCommand();//返回与此动作相关的命令字符串。
Systemoutprintln("##########command is "+c);
if(cequals("C")){
handleC(); //用户按了“C”键
}
else if (cequals("CE")) // 用户按了"CE"键
{
text_doublesetText("0");
}
else if ("0123456789"indexOf(c) >= 0) // 用户按了数字键或者小数点键
{
handleNumber(c); // handlezero(zero);
} else //用户按了运算符键
{
handleOperator(c);
}
}
private void handleC() // 初始化计算器的各种值
{
text_doublesetText("0");
firstDigit = true;
operator = "=";
}
private void handleNumber(String button) {
if (firstDigit)//输入的第一个数字
{
text_doublesetText(button);
} else if ((buttonequals("")) && (text_doublegetText()indexOf("") < 0))//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面
//如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1
{
text_doublesetText(text_doublegetText() + "");
} else if (!buttonequals(""))// 如果输入的不是小数点,则将数字附在结果文本框的后面
{
text_doublesetText(text_doublegetText() + button);
}
// 以后输入的肯定不是第一个数字了
firstDigit = false;
}
private void handleOperator(String button) {
if (operatorequals("/")) {
// 除法运算
// 如果当前结果文本框中的值等于0
if (getNumberFromText() == 00){
// *** 作不合法
operateValidFlag = false;
text_doublesetText("除数不能为零");
} else {
resultNum /= getNumberFromText();
}
} else if (operatorequals("+")){
// 加法运算
resultNum += getNumberFromText();
} else if (operatorequals("-")){
// 减法运算
resultNum -= getNumberFromText();
} else if (operatorequals("")){
// 乘法运算
resultNum = getNumberFromText();
} else if (operatorequals("sqrt")) {
// 平方根运算
if(getNumberFromText()<0){
operateValidFlag = false;
text_doublesetText("被开方数不能为负数");}
else
resultNum = Mathsqrt(resultNum);
}
else if (operatorequals("+/-")){
// 正数负数运算
resultNum = resultNum (-1);
} else if (operatorequals("=")){
// 赋值运算
resultNum = getNumberFromText();
}
if (operateValidFlag) {
// 双精度浮点数的运算
long t1;
double t2;
t1 = (long) resultNum;
t2 = resultNum - t1;
if (t2 == 0) {
text_doublesetText(StringvalueOf(t1));
} else {
text_doublesetText(StringvalueOf(resultNum));
}
}
operator = button; //运算符等于用户按的按钮
firstDigit = true;
operateValidFlag = true;
}
private double getNumberFromText() //从结果的文本框获取数字
{
double result = 0;
try {
result = DoublevalueOf(text_doublegetText())doubleValue(); // ValueOf()返回表示指定的 double 值的 Double 实例
} catch (NumberFormatException e){
}
return result;
}
public static void main(final String[] args) {
new Calculator();
}
}
以下代码放到一个button的事件中
Bitmap bmSave = new Bitmap(thispanel1Width, thispanel1Height); //用于保存的位图对象
Graphics gSave = GraphicsFromImage(bmSave); //创建该位图的Graphics对象
Graphics gSrc = thispanel1CreateGraphics();
HandleRef hDcSave = new HandleRef(null, gSaveGetHdc()); //得到句柄
HandleRef hDcSrc = new HandleRef(null, gSrcGetHdc());
BitBlt(hDcSave, 0, 0, thispanel1Width, thispanel1Height, hDcSrc, 0, 0, 0xcc0020);
gSrcReleaseHdc();
gSaveReleaseHdc();
//之前要判断下文件夹是否存在,不存在要创建,否则会异常,这里省略了
bmSaveSave(@"D:\截图\" + DateTimeNowToString("yyyy-MM-dd-HH-mm-ss") + "jpg");
gSrcDispose();
gSaveDispose();
bmSaveDispose();
哈哈 我昨天刚做了这个作业 你够幸运
import javaawt;
import javaawtevent;
import javaxswing;
import javamath;
public class Homework10_3 {
public static void main(String args[]){
MathWindow win=new MathWindow();
}
}
class MathWindow extends JFrame{
JTextField text1,text2,text3;
JPanel ps,pn;
MathWindow(){
text1=new JTextField(10);
text2=new JTextField(10);
text3=new JTextField(10);
JButton button1,button2,button3,button4;
button1=new JButton("加");
button2=new JButton("减");
button3=new JButton("乘");
button4=new JButton("除");
ps=new JPanel();
pn=new JPanel();
pnadd(text1);
pnadd(text2);
pnadd(text3);
psadd(button1);
psadd(button2);
psadd(button3);
psadd(button4);
add(pn,BorderLayoutCENTER);
add(ps,BorderLayoutSOUTH);
setBounds(100,100,370,150);
setVisible(true);
validate();
button1addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1getText();
String s2=text2getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
n2=n1add(n2);
text3setText(n2toString());
}
catch(NumberFormatException ee){
text3setText("请输入数字字符");
text1setText(null);
text2setText(null);
}
}
});
button2addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1getText();
String s2=text2getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
n2=n1subtract(n2);
text3setText(n2toString());
}
catch(NumberFormatException ee){
text3setText("请输入数字字符");
text1setText(null);
text2setText(null);
}
}
});
button3addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1getText();
String s2=text2getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
n2=n1multiply(n2);
text3setText(n2toString());
}
catch(NumberFormatException ee){
text3setText("请输入数字字符");
text1setText(null);
text2setText(null);
}
}
});
button4addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1getText();
String s2=text2getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
if(n2toString()=="0"){
text3setText("除数不能为0");
}
else
{
n2=n1divide(n2);
text3setText(n2toString());
}
}
catch(NumberFormatException ee){
text3setText("请输入数字字符");
text1setText(null);
text2setText(null);
}
}
});
setDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);
}
}
以上就是关于求一个简单的JAVA小程序,要有图形界面。全部的内容,包括:求一个简单的JAVA小程序,要有图形界面。、Labwindows/CVI的几句小程序求解: double value; GetCtrlVal(panelHandle,PANEL_NUMRIC,&value);、java:编写一个计算器小程序,要求可以做加减乘除运算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)