如何让java小程序自身重复
我有一个java图形实验室,它运行一个小程序,用鼠标点击7张不同的“幻灯片”。在第七张幻灯片之后,我需要了解如何从第一张幻灯片重新运行整个小程序。我认为这与While循环或重绘方法有关,但我不确定如何让java小程序自身重复,java,Java,我有一个java图形实验室,它运行一个小程序,用鼠标点击7张不同的“幻灯片”。在第七张幻灯片之后,我需要了解如何从第一张幻灯片重新运行整个小程序。我认为这与While循环或重绘方法有关,但我不确定
// Nicholas Barrera
// May 15, 2017
//GraphicsLab09st.java
// This is the student, starting file for Graphics Lab 08.
// This file is identical to Java1520.java.
// This slide show is about Mr. Leon Schram.
// Each student needs to alter this presentation,
// add pictures, add pages, add graphics and make it about him/herself.
import java.awt.*;
public class GraphicsLab09st extends java.applet.Applet
{
int numClicks;
Image picture1, picture2, picture3, picture4, picture5, picture6, picture7, picture8, picture9, picture10, picture11, picture12, picture13;
public void init()
{
numClicks = 0;
picture1 = getImage(getDocumentBase(),"RegularShowSunglasses.jpg");
picture2 = getImage(getDocumentBase(),"film-production.jpg");
picture3 = getImage(getDocumentBase(),"los-angeles.jpg");
picture4 = getImage(getDocumentBase(),"SanAntonio.jpg");
picture5 = getImage(getDocumentBase(),"Brandeis.jpg");
picture6 = getImage(getDocumentBase(),"sound-cloud.png");
picture7 = getImage(getDocumentBase(),"studio.jpg");
picture8 = getImage(getDocumentBase(),"StrangerThings.jpg");
picture9 = getImage(getDocumentBase(),"MazeRunnerBooks.jpg");
picture10 = getImage(getDocumentBase(),"rubiks.jpg");
picture11 = getImage(getDocumentBase(),"CaliLongboarding.jpg");
picture12 = getImage(getDocumentBase(),"Productive.jpg");
picture13 = getImage(getDocumentBase(),"Netflix_Logo.jpg");
}
public void paint(Graphics g)
{
switch (numClicks)
{
case 0: page1(g); break;
case 1: page2(g); break;
case 2: page3(g); break;
case 3: page4(g); break;
case 4: page5(g); break;
case 5: page6(g); break;
case 6: page7(g); break;
}
}
public boolean mouseDown(Event e, int x, int y)
{
numClicks++;
repaint();
return true;
}
//SLIDE 1
public void page1(Graphics g)
{
Expo.setColor(g,Expo.cyan);
g.fillRect(0,0,1000,650);
Expo.setColor(g,Expo.black);
g.setFont(new Font("Arial",Font.BOLD,95));
g.drawString("About Me",218,100);
g.setFont(new Font("Arial",Font.BOLD,50));
g.drawString("Nick Barrera",50,275);
Expo.setColor(g,Expo.red);
Expo.fillStar(g,510,350,175,8);
Expo.setColor(g,Expo.yellow);
Expo.drawThickStar(g,510,350,225,8,25);
Expo.setColor(g,Expo.blue);
Expo.drawThickStar(g,510,350,275,8,25);
g.drawImage(picture1,400,250,this);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("My name is",50,200);
g.drawString("Click once to continue.",750,580);
}
//SLIDE 2
public void page2(Graphics g)
{
Expo.setColor(g,Expo.gold);
g.fillRect(0,0,1000,650);
Expo.setColor(g,Expo.black);
g.setFont(new Font("Algerian",Font.BOLD,100));
g.drawString("PAGE 2",200,100);
Expo.setColor(g,Expo.blue);
Expo.fillRectangle(g,100,250,940,500);
Expo.setColor(g,Expo.chartreuse);
// Expo.drawThickOval(g,260,375,100,150,20);
Expo.drawThickRectangle(g,15,205,590,590,20);
g.drawImage(picture3,25,215,this);
g.drawImage(picture4,615,280,this);
Expo.setColor(g,Expo.blue);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("I was born in the Los Angeles, CA and moved to San Antonio, TX in 2005.",100,190);
g.drawString("Click once to continue.",750,580);
}
//SLIDE 3
public void page3(Graphics g)
{
Expo.setColor(g,Expo.magenta);
g.fillRect(0,0,1000,650);
Expo.setColor(g,Expo.black);
g.setFont(new Font("Impact",Font.BOLD,100));
g.drawString("PAGE 3",200,100);
Expo.setColor(g,Expo.darkBlue);
Expo.fillRoundedRectangle(g,460,220,960,580,50);
Expo.drawRandomBurst(g,268,394,185,2500);
g.drawImage(picture5,150,285,this);
g.drawImage(picture2,520,240,this);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("I am a juinior at Brandeis high school and intested in studying film production in college",100,150);
g.drawString("and becoming a Hollywood Producer/Music Artist in Los Angles, California is my dream.",100,175);
g.drawString("Click once to continue.",750,600);
}
//SLIDE 4
public void page4(Graphics g)
{
Expo.setColor(g,Expo.darkGreen);
g.fillRect(0,0,1000,650);
Expo.setColor(g,Expo.black);
g.setFont(new Font("SansSeriff",Font.BOLD,100));
g.drawString("PAGE 4",200,100);
g.drawImage(picture6,40,200,this);
g.drawImage(picture7, 500,200,this);
Expo.setColor(g,Expo.black);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("The studio I recorded at is called The Living Room Studios.",420,530);
g.drawString("My group name is The Infinity Collective or ICE.",50,480);
g.drawString("I also hope to do something in music and I actually have recorded two songs and",75,150);
g.drawString("have them on soundcloud, a database that shares many artist's music.",75,175);
Expo.setColor(g,Expo.blue);
g.drawString("Click once to continue.",750,580);
}
//SLIDE 5
public void page5(Graphics g)
{
Expo.setColor(g,Expo.black);
g.fillRect(0,0,1000,650);
Expo.setColor(g,Expo.red);
g.setFont(new Font("Garamond",Font.BOLD,100));
g.drawString("PAGE 5",200,100);
g.drawImage(picture8,40,200,this);
g.drawImage(picture9, 500,200,this);
Expo.setColor(g,Expo.red);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("The Maze Runner series by James Dashner is by far my favorite.",320,530);
g.drawString("My hobbies are reading books, playing basketball, and watching movies.",75,150);
Expo.setColor(g,Expo.blue);
g.drawString("Click once to continue.",750,580);
}
//SLIDE 6
public void page6(Graphics g)
{
Expo.setColor(g,Expo.tan);
g.fillRect(0,0,1000,650);
Expo.setColor(g,Expo.black);
g.setFont(new Font("Algerian",Font.BOLD,100));
g.drawString("PAGE 6",200,100);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("My other interest are playing video games, skating and challenging my mind to think with puzzles.",55,150);
g.drawImage(picture10,75,200,this);
g.drawString("I can solve a Rubik's cube in under 2 minutes.",45,500);
g.drawString("I love longboarding more than doing actual skate tricks.",500,520);
g.drawImage(picture11,470,200,this);
Expo.setColor(g,Expo.blue);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("Click once to continue.",750,580);
}
//SLIDE 7
public void page7(Graphics g)
{
Expo.setColor(g,Expo.lightBlue);
g.fillRect(0,0,1000,650);
Expo.setColor(g,Expo.black);
g.setFont(new Font("Bold",Font.BOLD,100));
g.drawString("PAGE 7",200,100);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("Overall I'm a well organized, sporty, and very productive student, who loves fun hobbies and learning new skills",35,150);
g.drawString("",35,165);
g.drawImage(picture12,570,185,this);
g.drawImage(picture13,50,185,this);
Expo.setColor(g,Expo.blue);
g.setFont(new Font("Times Roman",Font.PLAIN,20));
g.drawString("Click once to continue.",750,600);
}
}
如果您只是想返回到第一张幻灯片,您所需要的只是当大于幻灯片数量时,将
numClicks
重置为0
例如:
public boolean mouseDown(Event e, int x, int y)
{
numClicks++;
repaint();
if (numClicks == 6) {
numClicks = 0;
}
return true;
}
这也许不是最好的方法,但它应该可以完成工作。如果您只是想返回到第一张幻灯片,那么您所需要的只是在大于幻灯片数量时将
numClicks
重置为0
例如:
public boolean mouseDown(Event e, int x, int y)
{
numClicks++;
repaint();
if (numClicks == 6) {
numClicks = 0;
}
return true;
}
这也许不是最好的方法,但应该可以完成工作。有两个简单的解决方案:
- 如前所述:只需重置您的点击计数器
- 您可以使用模运算来确定:计数器是1、2、3、4、5或6的倍数,依此类推,而不是执行
。如果是6的倍数,则调用开关(numClicks)
。。。等等page7()
示例:您正在到处复制代码。您的7 page()方法几乎相同。您不应该担心如何增强代码,而应该担心如何简化代码。确定共同模式;并将其转化为具体的方法。因此,当您想将Times字体增加1时,只更新1个方法,而不是7个 有两个简单的解决方案:
- 如前所述:只需重置您的点击计数器
- 您可以使用模运算来确定:计数器是1、2、3、4、5或6的倍数,依此类推,而不是执行
。如果是6的倍数,则调用开关(numClicks)
。。。等等page7()
示例:您正在到处复制代码。您的7 page()方法几乎相同。您不应该担心如何增强代码,而应该担心如何简化代码。确定共同模式;并将其转化为具体的方法。因此,当您想将Times字体增加1时,只更新1个方法,而不是7个 您想重新启动小程序还是回到第一张幻灯片?请理解:java小程序是过时的技术。使用applet学习javaui编程会浪费您的时间(在一定程度上)。我完全同意,但这看起来像是家庭作业。不幸的是,他可能别无选择。但核心问题是:每一个被要求使用applet的学生都应该被告知:告诉你的老师他们在浪费你的时间!您想重新启动小程序还是回到第一张幻灯片?请理解:java小程序是过时的技术。使用applet学习javaui编程会浪费您的时间(在一定程度上)。我完全同意,但这看起来像是家庭作业。不幸的是,他可能别无选择。但核心问题是:每一个被要求使用applet的学生都应该被告知:告诉你的老师他们在浪费你的时间!