2013-05-01 138 views
0

如何在Java中單擊按鈕上更改圓圈的顏色? 下面是代碼更改點擊按鈕上的圓圈顏色

package circle; 

import java.awt.Color; 
import java.awt.Graphics; 

/** 
* 
* @author Akmal 
*/ 
public class NewJApplet extends javax.swing.JApplet { 

    /** 
    * Initializes the applet NewJApplet 
    */ 
    @Override 
    public void init() { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
       java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the applet */ 
     try { 
      java.awt.EventQueue.invokeAndWait(new Runnable() { 
       public void run() { 
        initComponents(); 
       } 
      }); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    public void paint(Graphics g) 
    { 

    super.paint(g); 

    setForeground(Color.yellow); 

    g.fillOval(100, 100, 100, 100); 

    } 

    /** 
    * This method is called from within the init() method to initialize the 
    * form. WARNING: Do NOT modify this code. The content of this method is 
    * always regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jButton2 = new javax.swing.JButton(); 

     jButton2.setText("Blue"); 
     jButton2.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton2ActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE) 
       .addGap(277, 277, 277)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE,  javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
       .addGap(137, 137, 137)) 
     ); 
    }// </editor-fold>       

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
     // TODO add your handling code here: 

    }           

    // Variables declaration - do not modify      
    private javax.swing.JButton jButton2; 
    // End of variables declaration     
    } 

請幫

+0

並重寫paintComponent(到的JPanel添加到JApplet的)用塗料() – mKorbel 2013-05-01 14:24:06

回答

3
  1. 聲明一個Color color = Color.YELLOW;作爲一個階級屬性。
  2. 變化setForeground(Color.yellow);setForeground(color);
  3. 變化// TODO add your handling code here:喜歡的東西color = Color.BLACK; repaint();
+0

捆綁感謝其工作 – 2013-05-01 14:30:50

+0

請可你告訴我如何在圓圈內添加文字? @Andrew – 2013-05-01 14:31:57

+0

這是一個單獨的問題。 – 2013-05-01 14:33:31

3
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class NewJApplet extends JApplet { 
    private Color currentColor = Color.YELLOW; 
    @Override 
    public void paint(Graphics g) { 
     super.paint(g); 
     g.setColor(currentColor); 
     g.fillOval(100, 100, 100, 100); 
    } 
    private void jButton2ActionPerformed(ActionEvent evt){ 
     currentColor = Color.BLUE; 
     repaint(); 
    }           
}