如何用JAVA语言编写计算器小程序

如何用JAVA语言编写计算器小程序,第1张

具体代码如下:

import javaxswing;

import javaawtevent;

import javaawt;

public class Calculator  extends JFrame implements ActionListener  {

private JFrame jf;

private JButton[] allButtons;

private JButton clearButton;

private JTextField jtf;

public Calculator() {

//对图形组件实例化

jf=new JFrame("任静的计算器10:JAVA版");

jfaddWindowListener(new WindowAdapter(){

public void windowClosing(){

Systemexit(0);

}

});

allButtons=new JButton[16];

clearButton=new JButton("清除");

jtf=new JTextField(25);

jtfsetEditable(false);

String str="123+456-7890=/";

for(int i=0;i<allButtonslength;i++){

allButtons[i]=new JButton(strsubstring(i,i+1));

}

}

public void init(){

//完成布局

jfsetLayout(new BorderLayout());

JPanel northPanel=new JPanel();

JPanel centerPanel=new JPanel();

JPanel southPanel=new JPanel();

northPanelsetLayout(new FlowLayout());

centerPanelsetLayout(new GridLayout(4,4));

southPanelsetLayout(new FlowLayout());

northPaneladd(jtf);

for(int i=0;i<16;i++){

centerPaneladd(allButtons[i]);

}

southPaneladd(clearButton);

jfadd(northPanel,BorderLayoutNORTH);

jfadd(centerPanel,BorderLayoutCENTER);

jfadd(southPanel,BorderLayoutSOUTH);

addEventHandler();

}

//添加事件监听

public void addEventHandler(){

jtfaddActionListener(this);

for(int i=0;i<allButtonslength;i++){

allButtons[i]addActionListener(this);

}

clearButtonaddActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

CalculatorthisjtfsetText("");

}

});

}

//事件处理

public void actionPerformed(ActionEvent e) {

//在这里完成事件处理  使计算器可以运行

String action=egetActionCommand();

if(action=="+"||action=="-"||action==""||action=="/"){

}

}

public void setFontAndColor(){

Font f=new Font("宋体",FontBOLD,24);

jtfsetFont(f);

jtfsetBackground(new Color(0x8f,0xa0,0xfb));

for(int i=0;i<16;i++){

allButtons[i]setFont(f);

allButtons[i]setForeground(ColorRED);

}

}

public void showMe(){

init();

setFontAndColor();

jfpack();

jfsetVisible(true);

jfsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

}

public static void main(String[] args){

new Calculator()showMe();

}

}

1Vegas Video 40

Vegas40是PC平台上用于视频编辑、音频制作、合成、字幕和编码的专业产品。它具有漂亮直观的界面和功能强大的音视频制作工具,为DV视频、音频录制、编辑和混合、流媒体内容作品和环绕声制作提供完整的集成的解决方法。

Vegas40为专业的多媒体制作树立一个新的标准,应用高质量切换、过滤器、片头字幕滚动和文本动画;创建复杂的合成,关键帧轨迹运动和动态全景/局部裁剪,具有不受限制的音轨和非常卓越的灵活性。利用高效计算机和大的内存,Vegas40从时间线提供特技和切换的实时预览,而不必渲染。使用3轮原色和合成色校正滤波器完成先进的颜色校正和场景匹配。使用新的视频示波器精确观看图像信号电平,包括波形、矢量显示、视频RGB值(RGB Parade)和频率曲线监视器。

Vegas40也在音频灵活性中提供终极的功能,包括不受限制的轨迹、对24 bit/96 kHz声音支持、记录输入信号监视、特技自动控制、时间压缩/扩展等等。Vegas40具有超过30个摄影室品质的实时DirectX特技,包括EQ、混响、噪声门限、时间压缩/扩展和延迟。Vegas40充分结合特效、合成、滤波器、剪裁和动态控制等多项工具,提供数字视频流媒体,成为DV视频编辑、多媒体制作和广播等较好的解决方案。

Final Cut Pro 4

这个视频剪辑软件由Premiere创始人Randy Ubillos设计,充分利用了 PowerPC G4 处理器中的“极速引擎”(Velocity Engine)处理核心,提供全新功能,例如不需要加装 PCI卡,就可以实时预览过渡与视频特技编辑、合成和特技,Matrox最近宣布将给Final Cut Pro增加实时特性的硬件加速。该软件的界面设计相当友好,按钮位置得当,具有漂亮的3D感觉,拥有标准的项目窗口及大小可变的双监视器窗口,它运用Avid系统中含有的三点编辑功能,在preferences菜单中进行所有的DV预置之后,采集视频相当爽,用软件控制摄像机,可批量采集。时间线简洁容易浏览,程序的设计者选择邻接的编辑方式,剪辑是首尾相连放置的,切换(例如淡入淡出或划变)是通过在编辑点上双击指定的,并使用控制句柄来控制效果的长度以及入和出。特技调色板具有很多切换,虽然大部分是时髦的飞行运动、卷页模式,然而,这些切换是可自定义的,它使Final Cut Pro优于只有提供少许平凡运行特技的其他的套装软件。

在Final Cut Pro中有许多项目都可以通过具体的参数来设定,这样就可以达到非常精细的调整。Final Cut Pro支持DV标准和所有的QuickTime格式,凡是QuickTime支持的媒体格式在Final Cut Pro都可以使用,这样就可以充分利用以前制作的各种格式的视频文件,还包括数不胜数的Flash动画文件。

总之,这是一个非常好的软件包,它提供较佳的编辑功能,具有像Adobe After Effects高端合成程序包中的合成特性。

Adobe Premiere 65

Adobe Premiere 65软件用于Mac和PC平台,通过对数字视频编辑处理的改进(从采集视频到编辑,直到最终的项目输出),已经设计成专业人员使用的产品。它提供内置的跨平台支持以利于DV设备的大范围的选择,增强的用户界面,新的专业编辑工具和与其他的Adobe应用软件(包括After Effects,Photoshop和GoLive)无缝的结合。目前,Premiere已经成为桌面制作人员的数字非线性编辑软件中的标准。Adobe一直保证Premiere将与变革技术的要求同步发展,随着Premiere 65的开发使用,Adobe已经达到这些要求,虽然大部分界面仍然原封不动,但是拥有一些可喜的变化,当打开程序时,要求用户在A/B风格编辑时间线之间选择,或选择单声道界面以利于使用。时间线的左下角也包含快速访问新的、频繁使用时间线特性的按钮,例如Track Options对话框,Toggle Snap to Edges,Toggle Edge Viewing,Toggle Shift Tracks选项和Toggle Sync模式,还可以使用窗口底部的Track Options对话框按钮打开Track Options对话框,快速添加一个或多个视频或音频轨迹。Adobe Premiere 65中新的工具包括专业级的音频混合器和Automate to Timeline,它们可同时从故事板或项目窗口传送剪辑序列到时间线。Adobe Premiere 65也具有数目众多的界面优化和自定义特性,在整个制作阶段,很容易使用Adobe Premiere的功能强大的编辑工具。

Premiere 65中最大的变化就是对实时软件效果的支持。现在,在Premiere中所做的一切都可以实时预览,包括字幕、色调甚至第三方效果。

Adobe意识到与苹果的数字视频功能集成是Premiere成功的关键,所以Premiere 65既集成iDVD,又集成DVD Studio Pro,前者是苹果的消费级DVD创作软件,后者是苹果的专业级DVD主打解决方案,可以把内容存成DV(数字视频)格式,以便在iDVD中使用,而装了DVD Studio Pro,就可以直接从Premiere的时间线以MPEG-2格式创建DVD了。时间线标记数据是可以导出的,因此也可以在DVD Studio Pro中使用章节点和单帧数据。

in:sync Speed Razor 2000

Speed Razor是Windows完全多线程非线性视频编辑和合成软件,提供全屏幕D1未压缩的品质视频、完全场渲染的NTSC或PAL。它具有不受限制的音视频层,以及DAT品质输出的高达20音频层的实时声音混合。它同差不多所有的编辑硬件一道工作,提供实时双流媒体或单流媒体配置。现在,Speed Razor有两个新的版本:Speed Razor 2000和Speed Razor 2000 X。这两个版本都增加了新的特性,例如可预设快捷键、多重二进制和导出QuickTime格式文件的功能。Speed Razor具有专业的实时视频编辑、实时音频混合和实时视频特技合成的能力。Speed Razor的主要特性包括:精确到帧的批量采集和打印到磁带、大量的快捷键、单步调整方法、不受层限制的合成、高达20个音轨的实时多通道音频混合、CD或DAT品质立体声输出和使作品发送到网站上。Speed Razor使用众多的视频采集硬件,包括Pinnacle系统Targa和DC30系列,Matrox DigiSuite,DigiSuite LE和DTV,FAST DV Master Pro,DPS Perception和Newtek Video Toaster。

除了DigiSuite先进的实时功能外,它多样的切换矩阵和灵活的过渡特技发生器都令它成为 Speed Razor 自由形式分层编辑和合成的理想的硬件平台。超高速多层合成,加上复杂的特技及移动遮挡和加速的图形转换,使其效率更高。

Ulead Media Studio Pro 65

它包括一个编辑程序包,它的文本和视频着色功能方面具有特别的处理强度。Media Studio Pro提供基于PC的纯MPEG-2和DV支持,它允许从录像机、电视、光盘或摄录一体机采集以及观看原始视频。使用Ligos公司的GoMotion技术,支持IEEE 1394和MPEG- 2的DV,确保高品质视频,并大大提高了生产效率。MSP的视频编辑器集合了所有的视频成分——视频、声音、动画和字幕,并改进了这些成分,增加了特技和切换,可以将视频保存为一个文件,把放它在因特网、CD-ROM或录制到录像磁带上。另一个包括MSP的最佳的小程序是视频着色,这一可动画的视频着色程序允许直接在视频序列中的任何帧上着色。对MSP的文本部分特别注意,名为CG Infinity,这个十分完整的基于矢量的图形制作程序生成令人佩服的动画字幕和活动图像。

Media Studio Pro 65增加了一些高级功能,包括DV场景检测、MPEG-2编辑甚至还有DVD光盘制作(这些功能大多都是Ulead的消费类产品中首先推出的),它还提供了直接捕捉MPEG-1和MPEG-2的功能,以及Vectorscope和Waveform监视器以校正色彩。

United Media On-line Express

On-Line Express 专为DigiSuite 平台设计的。On-Line Express 支持所有 DigiSuite 实时功能,包括可调关键帧的慢动作控制、复杂的背景制作、四声道输入和输出、多层合成和加速输出到磁带。On-Line Express 用户还可使用遥控搜索钮Discreet Edit�

拥有非线性编辑系统需要的全部编辑能力:快速剪接、滑动、拖动、替换、插入和覆盖,同时为长短不同的项目提供极好的媒体处理能力。在多处理、Windows 2000多线程环境中,使用Edit非线性编辑系统,将拥有从第一次剪接到在线全过程所需要的速度。Edit桌面系统提供实时关键帧动画的全部图形和特效能力,实时访问Combustion,它是著名的跟踪、图像稳定、绘画和颜色调整工具软件。这个Windows软件程序包根据使用的硬件不同有5个不同的特色,最好是使用Matrox DigiSuite LE和Matrox DigiSuite采集卡的选项1和选项2。现在的版本65增加了更多的合成特性,与DV兼容,可与Discreet公司的其他产品更好地配合使用。它是编辑未压缩的视频的最佳解决方案,编辑是实时的,非线性编辑解决方案在该桌面上完成合成、抠像和直观的特技。Edit完善的多层时间轴的垂直编辑完全使用Alpha通道,编辑复杂的关键帧,48条实时音轨混编使Edit成为广播电视、多媒体项目完美的非线性应用系统。快速时间轴编辑,先进的特效和音频;与Combustion结合, 全部这些都支持广播质量的非压缩图像。Jobnet,一个功能强大的对编辑功能的扩展,在Edit工作站之间共享项目、工作组、时间线、媒介、图形以及独立的片段数据。

AIST MoviePack

MoviePack是一个用于PC的全功能的视频编辑、合成和图像动画软件工具,具有3D特技和超速渲染的先进的核心技术。核心技术QPM和AMT形成AIST的“直接实时预览”或LPR的基础,它不落后于用户的动作,并显示所有的变化,包括切换、特技、变形、颜色校正和字幕。这个软件包是围绕开放式体系结构构建的,它允许用户扩展它,这意味着当要求改变时不必去寻找另外的新程序。作为一个开放的插件主体,MoviePack也给予自定义访问第三方厂家的插件。MoviePack大的改革是AIST称为Intelli渲染的内容,使渲染的视频和剪辑能够从时间线直接播放,只有被修改的帧被重新渲染,不再需要重新渲染整个剪辑。

Incite Studio 26

它是一个Windows软件包,设计在Matrox DigiSuite,DigiSuite LE和DigiSuite DTV硬件上运行。Incite提供一个易用编辑界面、多层的编辑方式,包含许多实用程序以及许多具有无限关键帧的实时特技。它是使用模拟磁带机器的最佳的系统,使用这些机器在同样的时间线上处理基于硬盘的所有剪辑。Incite 是第一款具有“混合”(将基于磁盘、磁带和现场的信号混合)编辑功能的基于 DigiSuite 的软件,还有配音录音和同时视频播放和录制。它充分利用 DigiSuite 平台的实时性能,复杂的合成可使用多层合成引擎完成,Incite 用户还可使用遥控搜索钮疡市场上最好的混合数字视频编辑器的荣誉。

Avid Xpress 4

该软件拥有编辑层的独特的方法,视频是无损的。它是可以在桌面工作站或笔记本上使用的唯一的一个软件产品,用户界面非常像Avid Media Composer。新的版本Xpress 4使用Terran Interactive(包含Media Cleaner EZ),增加了可以在任何地方提供媒体的功能,包括一套功能强大的视频编辑、特技、音频、字幕、图像、合成和协同工作的工具。

/计算器/

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(); /在文本域中显示信息/

}

}

这是我做的一个计算器:运行截图

一、引入ec-canvas文件

>

连连看java源代码

import javaxswing;

import javaawt;

import javaawtevent;

public class lianliankan implements ActionListener

{

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组

JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮

JLabel fractionLable=new JLabel("0"); //分数标签

JButton firstButton,secondButton; //分别记录两次被选中的按钮

int grid[][] = new int[8][7];//储存游戏按钮位置

static boolean pressInformation=false; //判断是否有按钮被选中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标

int i,j,k,n;//消除方法控制

public void init(){

mainFrame=new JFrame("JKJ连连看");

thisContainer = mainFramegetContentPane();

thisContainersetLayout(new BorderLayout());

centerPanel=new JPanel();

southPanel=new JPanel();

northPanel=new JPanel();

thisContaineradd(centerPanel,"Center");

thisContaineradd(southPanel,"South");

thisContaineradd(northPanel,"North");

centerPanelsetLayout(new GridLayout(6,5));

for(int cols = 0;cols < 6;cols++){

for(int rows = 0;rows < 5;rows++ ){

diamondsButton[cols][rows]=new JButton(StringvalueOf(grid[cols+1][rows+1]));

diamondsButton[cols][rows]addActionListener(this);

centerPaneladd(diamondsButton[cols][rows]);

}

}

exitButton=new JButton("退出");

exitButtonaddActionListener(this);

resetButton=new JButton("重列");

resetButtonaddActionListener(this);

newlyButton=new JButton("再来一局");

newlyButtonaddActionListener(this);

southPaneladd(exitButton);

southPaneladd(resetButton);

southPaneladd(newlyButton);

fractionLablesetText(StringvalueOf(IntegerparseInt(fractionLablegetText())));

northPaneladd(fractionLable);

mainFramesetBounds(280,100,500,450);

mainFramesetVisible(true);

}

public void randomBuild() {

int randoms,cols,rows;

for(int twins=1;twins<=15;twins++) {

randoms=(int)(Mathrandom()25+1);

for(int alike=1;alike<=2;alike++) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

}

thisgrid[cols][rows]=randoms;

}

}

}

public void fraction(){

fractionLablesetText(StringvalueOf(IntegerparseInt(fractionLablegetText())+100));

}

public void reload() {

int save[] = new int[30];

int n=0,cols,rows;

int grid[][]= new int[8][7];

for(int i=0;i<=6;i++) {

for(int j=0;j<=5;j++) {

if(thisgrid[i][j]!=0) {

save[n]=thisgrid[i][j];

n++;

}

}

}

n=n-1;

thisgrid=grid;

while(n>=0) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Mathrandom()6+1);

rows=(int)(Mathrandom()5+1);

}

thisgrid[cols][rows]=save[n];

n--;

}

mainFramesetVisible(false);

pressInformation=false; //这里一定要将按钮点击信息归为初始

init();

for(int i = 0;i < 6;i++){

for(int j = 0;j < 5;j++ ){

if(grid[i+1][j+1]==0)

diamondsButton[i][j]setVisible(false);

}

}

}

public void estimateEven(int placeX,int placeY,JButton bz) {

if(pressInformation==false) {

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

pressInformation=true;

}

else {

x0=x;

y0=y;

fristMsg=secondMsg;

firstButton=secondButton;

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

if(fristMsg==secondMsg && secondButton!=firstButton){

xiao();

}

}

}

public void xiao() { //相同的情况下能不能消去。仔细分析,不一条条注释

if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判断是否相邻

remove();

}

else{

for (j=0;j<7;j++ ) {

if (grid[x0][j]==0){ //判断第一个按钮同行哪个按钮为空

if (y>j) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边

for (i=y-1;i>=j;i-- ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0) {

k=0;

break;

}

else{ k=1; } //K=1说明通过了第一次验证

}

if (k==1) {

linePassOne();

}

}

if (y<j){ //如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边

for (i=y+1;i<=j ;i++ ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0){

k=0;

break;

}

else { k=1; }

}

if (k==1){

linePassOne();

}

}

if (y==j ) {

linePassOne();

}

}

if (k==2) {

if (x0==x) {

remove();

}

if (x0<x) {

for (n=x0;n<=x-1;n++ ) {

if (grid[n][j]!=0) {

k=0;

break;

}

if(grid[n][j]==0 && n==x-1) {

remove();

}

}

}

if (x0>x) {

for (n=x0;n>=x+1 ;n-- ) {

if (grid[n][j]!=0) {

k=0;

break;

}

if(grid[n][j]==0 && n==x+1) {

remove();

}

}

}

}

}

for (i=0;i<8;i++ ) { //列

if (grid[i][y0]==0) {

if (x>i) {

for (j=x-1;j>=i ;j-- ) {

if (grid[j][y]!=0) {

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (x<i) {

for (j=x+1;j<=i;j++ ) {

if (grid[j][y]!=0) {

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (x==i) {

rowPassOne();

}

}

if (k==2){

if (y0==y) {

remove();

}

if (y0<y) {

for (n=y0;n<=y-1 ;n++ ) {

if (grid[i][n]!=0) {

k=0;

break;

}

if(grid[i][n]==0 && n==y-1) {

remove();

}

}

}

if (y0>y) {

for (n=y0;n>=y+1 ;n--) {

if (grid[i][n]!=0) {

k=0;

break;

}

if(grid[i][n]==0 && n==y+1) {

remove();

}

}

}

}

}

}

}

public void linePassOne(){

if (y0>j){ //第一按钮同行空按钮在左边

for (i=y0-1;i>=j ;i-- ){ //判断第一按钮同左侧空按钮之间有没按钮

if (grid[x0][i]!=0) {

k=0;

break;

}

else { k=2; } //K=2说明通过了第二次验证

}

}

if (y0<j){ //第一按钮同行空按钮在与第二按钮之间

for (i=y0+1;i<=j ;i++){

if (grid[x0][i]!=0) {

k=0;

break;

}

else{ k=2; }

}

}

}

public void rowPassOne(){

if (x0>i) {

for (j=x0-1;j>=i ;j-- ) {

if (grid[j][y0]!=0) {

k=0;

break;

}

else { k=2; }

}

}

if (x0<i) {

for (j=x0+1;j<=i ;j++ ) {

if (grid[j][y0]!=0) {

k=0;

break;

}

else { k=2; }

}

}

}

public void remove(){

firstButtonsetVisible(false);

secondButtonsetVisible(false);

fraction();

pressInformation=false;

k=0;

grid[x0][y0]=0;

grid[x][y]=0;

}

public void actionPerformed(ActionEvent e) {

if(egetSource()==newlyButton){

int grid[][] = new int[8][7];

thisgrid = grid;

randomBuild();

mainFramesetVisible(false);

pressInformation=false;

init();

}

if(egetSource()==exitButton)

Systemexit(0);

if(egetSource()==resetButton)

reload();

for(int cols = 0;cols < 6;cols++){

for(int rows = 0;rows < 5;rows++ ){

if(egetSource()==diamondsButton[cols][rows])

estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);

}

}

}

public static void main(String[] args) {

lianliankan llk = new lianliankan();

llkrandomBuild();

llkinit();

}

}

//old 998 lines

//new 318 lines

参考资料:

>

以上就是关于如何用JAVA语言编写计算器小程序全部的内容,包括:如何用JAVA语言编写计算器小程序、求助!!汇编小程序:显示变色二进制数字。、求一个简单的JAVA小程序,要有图形界面。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9648774.html

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

发表评论

登录后才能评论

评论列表(0条)

保存