Auf Buttondruck (actionperformed) painten

Status
Nicht offen für weitere Antworten.

DerEine

Mitglied
So guten Abend noch einmal, da ich alles versucht habe, und es nicht geschaft habe, möchte ich die Notbremse ziehen und mir ist noch eine rettende Idde für mein Klavier Frame eingefallen:

Eine "Notenlinie" wird mit einer Whileschleife gepainted (Absolut kein problem)
Dann bekommt jeder Button eine Note Zugeordnet (a, b, usw)
Und auf Buttondruck soll auf der Linie eine Note gezeichnet werden....
Dass grundprinzip ist mir bekant, mit drawline, usw die x variable wird dann immer weiter erhöt, damit man auch einen schönen abstand hat....

Jetzt aber, wie realisiere ich es dass auf Buttondruck gepainted werden kann? Ich hab im Actionperformed einfach " int i; i=1;" gesetzt und dann in der public void paint
if (i==1)
{
g.fillRect(50,100,400,90);
}
gesetzt, aber er painted mir einfach nix.... Was mus ich machen, damit er auf Buttondruck etwas painted?
Ich möchte nicht unverschämt wirken, ich kenn die Netiquette, aber eine eindeutige Antowrt fände ich sehr hilfreich, einen schönen Abend noch...
 

DerEine

Mitglied
Danke schoneimal dass du mir hilfst...

(Einige zeieln sind kompletter quatsch, aber dass passiert ja als anfänger schonmal ;))

Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.lang.Long.*;
import java.io.*;
import java.awt.Graphics;
import java.net.*;

//Einbinden von Packages

public class Keyboard extends Frame implements MouseListener// , Clip
{
  private Button bt1 = new Button("Ton1");
  private Button bt2 = new Button("Ton2");

  int i=0;
  
  

   AudioClip ton1;
   AudioClip ton2;

   File f;
   
   

   public Keyboard()
   {
      super("Keyboard");
    setSize(1000,300);
    setBackground(Color.green);
    
    setLocation(100,100);
    setVisible(true);
    setLayout(null);
     
    addWindowListener(new WindowAdapter()
  
      {
         public void windowClosing(WindowEvent event)
         {
            System.exit(0);
         }
      }); 
      
      
      bt1.setBounds(50,100,40,90);
      bt2.setBounds(90,100,40,90);

    add(bt1);
    add(bt2);

      getDocBase();
      
     bt1.addActionListener(new Taste());
     bt2.addActionListener(new Taste());

    }
 
   public void getDocBase()
   {
    
    try
    {
          //File 
          f = new File( "tada.wav" );
          ton1 = Applet.newAudioClip( f.toURL() );
          File a = new File( "tada.wav" );
          ton2 = Applet.newAudioClip( a.toURL() );
          File b = new File( "tada.wav" );

 }         
         catch (Exception e )
{

}

   }
  
  class Taste implements ActionListener
    {
       public void actionPerformed(ActionEvent e)
       {

          i=0;
    
          if(e.getActionCommand()=="ton1")  ton1.play();
          if(e.getActionCommand()=="ton1")  i=1;
          if(e.getActionCommand()=="ton1")  repaint();
          if(e.getActionCommand()=="ton2") ton2.play();  
        
       }
       

}



   public void paint(Graphics g) 
     {
     int yk=50;
     int yka=50;
     int ik=0;
     
     if (i==1)
     {
      g.fillRect(500,1000,400,900);
     }
       g.drawString("Willkomen bei Daniels Klavier",50,50);
       g.setColor(Color.white); 
       

      g.setColor(Color.black);
      
      while (ik <= 19)
       {
      ik++;
      g.drawLine(yka,100,20,50);
      yka=yka+41;
       };

       
           repaint();

      
     }

    public void keyReleased(KeyEvent event)
  {
    System.out.println("keyReleased");
  }
  
  public void keyPressed(KeyEvent event)
  {
    System.out.println("keyPressed");
    ton1.play();
  }

  
  
   public void mouseClicked(MouseEvent evt) 
     {
     ton1.play();
     i=1;
     repaint();
     }

     public void mousePressed(MouseEvent evt) 
     {
         
      repaint();
      i=1;
      ton1.play();

    
     }
     
     
     public void mouseReleased(MouseEvent evt) 
     {
     }
     
     public void mouseEntered(MouseEvent evt) 
     {
     }
     
     public void mouseExited(MouseEvent evt) 
     {
     }
     
        public static void main(String args[])
   {
       
      Keyboard gu = new Keyboard();  
   }
}
 

Marco13

Top Contributor
Einiges ist quatsch, ja.
Strings mit equals vergleichen, nicht mit ==
paint vom Frame zu überschreiben ist heikel, besser ein Panel nehmen, und DORT paint überschreiben
in paint repaint aufrufen bewirkt """Endlosschleife"""

Schreib' dir debug-Ausgaben:
Code:
if (e.getActionCommand().equals("ton1")) // equals!!!
{
    System.out.println("Ich weise jetzt zu...");
    i = 1;
    System.out.println("Jetzt ist i=="+i);
}
....


// In der paint:

    System.out.println("Ich painte gerade, hier ist i=="+i);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Auf Buttondruck einen Wert zurückgeben Java Basics - Anfänger-Themen 3
R actionPerformed wird nicht ausgeführt Java Basics - Anfänger-Themen 5
F actionPerformed() zur richtigen Zeit Java Basics - Anfänger-Themen 6
D JLabel ändern in actionperformed Java Basics - Anfänger-Themen 2
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
S Wie werte vergleichen, die in actionPerformed-Methode hängen ? Java Basics - Anfänger-Themen 4
M Threads Thread.Sleep Problem im Zusammenhang mit GUI/ActionPerformed-Methode Java Basics - Anfänger-Themen 4
J In actionPerformed Zugriff auf öffentlich Methoden der Klasse Java Basics - Anfänger-Themen 4
Z Kann actionPerformed(ActionEvent) nicht überschreiben Java Basics - Anfänger-Themen 8
J Werte an Methode übergeben und gleichzeitig ActionPerformed einbeziehen. Java Basics - Anfänger-Themen 14
M OOP ActionPerformed Methode aus anderer AP aufrufen? Java Basics - Anfänger-Themen 5
M Variablen via actionPerformed mit Buttons ändern Java Basics - Anfänger-Themen 7
R Wie es anstellen das ActionPerformed einen Wert zurückgibt? Java Basics - Anfänger-Themen 8
S Objekt an actionPerformed Methode übergeben Java Basics - Anfänger-Themen 7
A lokale Variable innerhalb "actionPerformed()" Java Basics - Anfänger-Themen 10
S actionPerformed(ActionEvent ev) Java Basics - Anfänger-Themen 4
Houly while Schleife im ActionPerformed Event Java Basics - Anfänger-Themen 8
R ActionPerformed: Methode ausführen Java Basics - Anfänger-Themen 3
0 Fehlermeldung: SteuerungsPanel$ButtonHandler.actionPerformed(Steu erungsPanel.java: Java Basics - Anfänger-Themen 2
R Thread in ActionPerformed-Methode unbekannt? Java Basics - Anfänger-Themen 4
R Wie getText mit actionPerformed verwenden? Java Basics - Anfänger-Themen 3
C actionPerformed(null) Java Basics - Anfänger-Themen 6
H Frage zur Methode: actionPerformed Java Basics - Anfänger-Themen 2
A ActionPerformed Methode ohne Rückgabewert Java Basics - Anfänger-Themen 12
I actionPerformed funktioniert nicht Java Basics - Anfänger-Themen 13
DeeDee0815 JRadioButton, actionPerformed und Textfelder Java Basics - Anfänger-Themen 2
B Exception Handling in der ActionPerformed-Methode Java Basics - Anfänger-Themen 7
S Java GUI: Probleme mit EventListener und actionPerformed Java Basics - Anfänger-Themen 3
B actionPerformed und ComboBoxen Java Basics - Anfänger-Themen 7
J JMenu + ActionPerformed + ConntentPane Java Basics - Anfänger-Themen 4
D Fehlersuche actionPerformed Java Basics - Anfänger-Themen 6
S actionPerformed und JCheckBox Java Basics - Anfänger-Themen 4
N ActionListener - ActionPerformed - if soure= .... Java Basics - Anfänger-Themen 6
M Übergeben einer Variable an actionPerformed(ActionEvent e)? Java Basics - Anfänger-Themen 5
U actionPerformed - Source verständlich Java Basics - Anfänger-Themen 8
C Problem mit actionPerformed Java Basics - Anfänger-Themen 4
M Aus anderer Methode painten Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben