2013-10-28 71 views
0
public class ExamplePane extends javax.swing.JFrame { 

    public ExamplePane() { 
     // this is constructor 
     initComponents(); 

    } 
    private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {          
     jPanel1.setVisible(true); 
     jPanel2.setVisible(false); 
     jPanel2.invalidate(); 
    }          

    private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) {          
     jPanel2.setVisible(true); 
     jPanel1.setVisible(false); 
     jPanel1.invalidate(); 
    }          

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
      java.awt.EventQueue.invokeLater(new Runnable() { 
       public void run() { 
        new ExamplePane().setVisible(true); 
       } 
      }); 
     } 
     // Variables declaration - do not modify      
     private javax.swing.JLabel jLabel1; 
     private javax.swing.JLabel jLabel2; 
     private javax.swing.JPanel jPanel1; 
     private javax.swing.JPanel jPanel2; 
     private javax.swing.JPanel jPanel3; 
     private javax.swing.JPanel jPanel4; 
     // End of variables declaration     
    } 

當你試圖在點擊事件中逐個顯示jpanel時,那麼面板在那裏是重疊的。所以請幫助我。圖形是當我試圖改變Jpanel在Jframe時造成的

+0

爲了更好的幫助,儘快發佈[SSCCE](http://sscce.org/) – Reimeus

回答

2
  1. 你有MouseAdapter

  2. 你做改變使用CardLayout,只有兩個JPanel S,只覆蓋mouseClicked()(從MouseEvents)已經可見的Swing GUI,必須通知使用LayoutManage [R有變化,使用(re)validate()repaint()代替invalidate();,然後用setVisible打不要求太

+0

+1,很久沒有upvote你:) – Azad

+1

@Azad :-)謝謝,也許是由於我的零接近零)活動在這裏... – mKorbel

+0

但它已經在Netbeans中配置..我使用的是netbeans 7.3.1,因此不需要使用它自動配置的Layoutmanager。 – Krishna

0
import java.awt.Color; 
import java.awt.FlowLayout; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 
import javax.swing.BorderFactory; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.border.BevelBorder; 

public class ScrollLabel extends javax.swing.JFrame { 

    public ScrollLabel() { 

     setSize(400, 400); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLayout(null); 
     jPanel1 = new JPanel(); 
     jPanel1.setBackground(Color.red); 
     jPanel1.add(new JLabel("Panel 1")); 

     jPanel2 = new JPanel(); 
     jPanel2.setBackground(Color.green); 
     jPanel2.add(new JLabel("Panel 2")); 

     jLabel1 = new JLabel("jPanel 1"); 
     jLabel2 = new JLabel("jPanel 2"); 

     jPanel1.setBounds(0, 0, getWidth(),getHeight()-50)); 
     jPanel2.setBounds(0, 0, getWidth(),getHeight()-50)); 
     jLabel1.setBounds(0, getHeight()-40, 100,30); 
     jLabel2.setBounds(getWidth()/2, getHeight()-40, 100,30); 

     jLabel1.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); 
     jLabel2.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); 


     add(jPanel1); 
     add(jPanel2); 
     add(jLabel1); 
     add(jLabel2); 

     repaint(); 

     jLabel1.addMouseListener(new MouseListener() { 
      @Override 
      public void mouseClicked(MouseEvent e) { 
       jLabel1MouseClicked(e); 
      } 

      @Override 
      public void mousePressed(MouseEvent e) { 
      } 

      @Override 
      public void mouseReleased(MouseEvent e) { 
      } 

      @Override 
      public void mouseEntered(MouseEvent e) { 
      } 

      @Override 
      public void mouseExited(MouseEvent e) { 
      } 
     }); 


     jLabel2.addMouseListener(new MouseListener() { 
      @Override 
      public void mouseClicked(MouseEvent e) { 
       jLabel2MouseClicked(e); 
      } 

      @Override 
      public void mousePressed(MouseEvent e) { 
      } 

      @Override 
      public void mouseReleased(MouseEvent e) { 
      } 

      @Override 
      public void mouseEntered(MouseEvent e) { 
      } 

      @Override 
      public void mouseExited(MouseEvent e) { 
      } 
     }); 

    } 

    private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) { 
     jPanel1.setVisible(true); 
     jPanel2.setVisible(false); 
     jPanel2.invalidate(); 
    } 

    private void jLabel2MouseClicked(java.awt.event.MouseEvent evt) { 
     jPanel2.setVisible(true); 
     jPanel1.setVisible(false); 
     jPanel1.invalidate(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 

     new ScrollLabel().setVisible(true); 

    } 
    // Variables declaration - do not modify      
    private javax.swing.JLabel jLabel1; 
    private javax.swing.JLabel jLabel2; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JPanel jPanel2; 
    private javax.swing.JPanel jPanel3; 
    private javax.swing.JPanel jPanel4; 
    // End of variables declaration     
} 
+0

您在此程序中有異常java.awt.HeadlessException – Krishna