2016-04-25 16 views
0

Ich versuche, den Code zu machen, das eine Beschriftung hinzufügt, wenn ich auf und entfernt dann das Etikett, wenn ich e drücken. Kann mir jemand helfen, diese zu tun habe ich die Etiketten und ich habe es zu kompilieren, aber das Etikett wird nicht angezeigt und die für meine Grafik Projekt, das ich auf es wirklich schwerJava Applet Hinzufügen und Entfernen von Etiketten

arbeitete
import java.awt.geom.*; 
import java.awt.*; 
import javax.swing.*; 
import java.io.*; 
import java.awt.event.*; 
import java.applet.*; 
import java.util.*; 
import java.awt.Label; 
public class Volcano_Client extends Applet implements MouseListener, KeyListener, Runnable 
{ 
    Label label1; 
boolean pickE=false; 
boolean play = true; 
boolean makeLava=false; 
Thread t; 
Thread thr; 
Thread th; 
boolean mouseEntered; 
int count; 
Volcano v1; 
public void init() 
{ 
    label1 = new Label("You see lava flowing down as you press e"); 

    v1 = new Volcano(); 
    thr=new Thread(this); 
    thr.start(); 
    t=new Thread(this); 
    t.start(); 
    th= new Thread(this); 
    count=0; 
    addMouseListener(this); 
    addKeyListener(this); 
} 
public void keyTyped(KeyEvent k) 
{ 
} 
public void keyReleased(KeyEvent k) 
{ 
} 
public void keyPressed(KeyEvent k) 
{ 
    if(k.getKeyCode() ==KeyEvent.VK_E) 
    { 
     pickE=true; 
     repaint(); 
     k.consume(); 
    } 
} 
    public void mouseExited(MouseEvent me) 
{ 
    mouseEntered=false; 
    repaint(); 
} 
public void mousePressed(MouseEvent me) 
{ 
} 
public void mouseReleased(MouseEvent me) 
{ 
} 
public void mouseEntered(MouseEvent me) 
{ 

    mouseEntered=true; 
    repaint(); 
} 
public void mouseClicked(MouseEvent me) 
{ 

    if(mouseEntered==true) 
    { 
     makeLava=true; 
    } 
    else 
    { 
     makeLava=false; 
    } 
    repaint(); 
} 
public void run() 
{ 
    while(play==true) 
    { 
     try 
     { 
      Thread.sleep(100); 
     } 
     catch(InterruptedException e) 
     { 
      e.printStackTrace(); 
     } 
     repaint(); 
    } 
    while(true) 
    { 
     try{ 
      Thread.sleep(20); 
     } 
     catch(Exception e){}; 
     repaint(); 
    } 
} 
public void stop() 
{ 
} 
public void start() 
{ 
} 
public void paint(Graphics g) 
{ 
    Graphics2D g2 = (Graphics2D)g; 
    label1 = new Label("You see lava flowing down as you press e"); 
    v1.makeVolcano(g2); 
    if(makeLava) 
    { 
     v1.makeLavaUp(g2); 
     g.setColor(Color.black); 
     g.drawString("KABOOM!!!",200,70); 
     add(label1); 

    } 
    else 
    { 
     g.setColor(Color.white); 
     g.drawString("Please Click For Eruption part 1",160,250); 
    } 
    if(pickE) 
    { 
     v1.makeLavaFlow(g2); 
     remove(label1); 
    } 
    else 
    { 
     //g.setColor(Color.white); 
     //g.drawString("Please press 'E' for Eruption part 2",160,276); 
    } 

} 

} 
+0

Ich habe bereits einige Code. –

+1

poste deinen ausprobierten Code in diese Frage und lass uns wissen, was du falsch gemacht hast !! –

+0

Ich weiß nicht, wie ich bin ein bisschen neu in diese –

Antwort

-1

Um das Etikett anzuzeigen, unten ist init() Funktion geändert:

 
public void init() 
`{` 
`label1 = new Label("You see lava flowing down as you press e");` 

     //v1 = new Volcano(); 
    thr=new Thread(this); 
    thr.start(); 
    t=new Thread(this); 
    t.start(); 
    th= new Thread(this); 
    count=0; 

    addMouseListener(this); 
    addKeyListener(this); 

    add(label1); //to display label 
} 


+0

Ich habe das einmal gemacht, aber wenn ich es tat, würde es nicht entfernen. –

+0

Verwenden Sie label1.setVisible (false); das Label zu verstecken – Ktonneh

+0

Wie kann ich es verstecken, wenn ich klicke, um es ausbrechen zu lassen? Auch wenn ich label1 hinzufüge, wird die Lava nicht herunterfließen. –