JAVA GUI 사용자 정의 JPanel 화판 배경

7748 단어 JAVAJPanel배경
사용자 정의 JPanel 패 널 배경
머리말
1.GUI 는 모두 Graphical User Interface 라 고 하 는데 바로 그래 픽 사용자 인터페이스 이다.JAVA 의 GUI 응용 은 우리 생활 에서 도 흔 하 다.QQ 아이콘 을 누 르 면 로그 인 창 을 꺼 내 는 것 과 같은 GUI 프로 그래 밍 디자인 을 사용 하 는 경우 가 많다.

일반 프로그램 과 사용자 의 상호작용 은 모두 대응 하 는 프로그램의 실행 인 터 페 이 스 를 바탕 으로 한다.
2.JPanel 패 널 은 SWING 의 다음 패 널 용기 류 입 니 다.이 패 널 은 끼 워 넣 기 를 지원 합 니 다.레이아웃 방식 을 설정 할 수 있 습 니 다.서로 다른 레이아웃 관리 자 를 설정 하면 JButton 단추,JTextField 텍스트 상자 등 다른 컨트롤 을 추가 할 수 있 습 니 다.프로그램 인터페이스 창 을 완벽 하 게 설계 합 니 다.
그림 패 널 로 setBackground()를 지원 하 는 배경 색 을 설정 하 는 방법 은 턱 없 이 부족 합 니 다.JPanel 로 사용자 정의 그림 배경 을 설정 합 니 다.
2.플랫폼 도구
1.MyEclipse
        my eclipse 2014 사용 을 보 여 줍 니 다.
        기타 자바 awt+swing 플랫폼 지원 도 가능 합 니 다.
그림 과 글 전시
1.같은 창 아래 에서 JPanel 을 다 르 게 처리 하 는 효과
  (1)먼저 수정 되 지 않 은 창 을 만 듭 니 다.일반적인 기본 jpanel 인터페이스 효 과 는 다음 과 같 습 니 다.

  (2)간단 한 배경 색 효과 설정:

  (3)사용자 정의 처 리 된 JPanel 창 효과:

2.코드 구현
JPanel 배경 처 리 를 사용자 정의 합 니 다.이 그림 은 bg.PNG 입 니 다.테스트 클래스 와 같은 경로 에서 그림 을 사용 하여 상대 경 로 를 주의 하 십시오.

import java.awt.Graphics; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
 
public class GUITest { 
   private static JFrame jframe; //       
   private JPanel jpanel;     //       
  
   public GUITest(){       //     
     jframe = new JFrame(); 
     init(); 
   } 
  
   private void init(){ 
     jframe.setTitle("  "); 
     jpanel = new JPanel(){//    ,     paint      
        @Override 
        protected void paintComponent(Graphics g) { 
          super.paintComponent(g); 
          ImageIcon img = new ImageIcon(GUITest.class.getResource("bg.png"));  
         /** 
          * bg.PNG            
          *          ,bg.png            
          *                    
          */ 
          img.paintIcon(this, g, 0, 0); 
        } 
     }; 
     jpanel.setOpaque(true); 
     jframe.setBounds(200, 200, 500, 400); //          200      200       500*400 
      
     jframe.add(jpanel); //        
      
     jframe.setVisible(true); //       
   } 
  
   public static void main(String[] args) { 
      new GUITest();      //        
   } 
} 
 4.레이아웃 관리자 확장
로그 인 창 을 간단히 쓰 겠 습 니 다:
 사용자 정의 JPanel 배경 을 기반 으로 GridBagLayout 레이아웃 을 설정 하고 단추 텍스트 상자 등 기본 컨트롤 을 추가 하여 간단 한 로그 인 창 을 만 듭 니 다.
(1)코드 는 다음 과 같다.

import java.awt.Graphics; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import java.awt.Insets; 
import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JPasswordField; 
import javax.swing.JTextField; 
 
public class GUIT { 
  //    ,      
  private static JFrame jframe; 
  private JLabel jlabel,jlabel1; 
  private GridBagLayout gridbag; 
  private GridBagConstraints constraints; 
  private JTextField jtfield1; 
  private JPasswordField jpfield1; 
  private JButton jbutton1,jbutton2,jbutton3; 
  private JPanel jpanel; 
   
  public GUIT(){ 
    jframe = new JFrame(); 
    jlabel = new JLabel(); 
    jlabel1 = new JLabel(); 
    jtfield1 = new JTextField(); 
    jpfield1 = new JPasswordField(); 
    gridbag = new GridBagLayout(); 
    jbutton1 = new JButton(); 
    jbutton2 = new JButton(); 
    jbutton3 = new JButton(); 
    init(); 
  } 
  
   /** 
   * init()         
   */ 
  private void init(){ 
    jframe.setTitle("  "); 
    /** 
     *   JPanel   
     */ 
    jpanel = new JPanel(){ 
      @Override 
      protected void paintComponent(Graphics g) { 
        super.paintComponent(g); 
        ImageIcon img = new ImageIcon(GUITest.class.getResource("ddmbg.jpg")); 
        img.paintIcon(this, g, 0, 0); 
      } 
    }; 
    // JLabel,JButton      
    jlabel.setText("   :"); 
    jlabel1.setText("    :"); 
    jbutton1.setText("  "); 
    jbutton2.setText("  "); 
    jbutton3.setText("  "); 
   
    //           500*400 
    jframe.setBounds(450, 240, 400, 240); 
    //jpanel  GridBagLayout      
    jpanel.setOpaque(false); 
    jpanel.setLayout(gridbag); 
     
    //      label,          
    constraints = getGridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0); 
    gridbag.setConstraints(jlabel, constraints); 
    jpanel.add(jlabel); 
     
    //         ,          
    constraints = getGridBagConstraints(1,0,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),100,0); 
    gridbag.setConstraints(jtfield1, constraints); 
    jpanel.add(jtfield1); 
      
    //     label 
    constraints = getGridBagConstraints(0,1,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0); 
    gridbag.setConstraints(jlabel1, constraints); 
    jpanel.add(jlabel1); 
    
    //         
    constraints = getGridBagConstraints(1,1,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),100,0); 
    gridbag.setConstraints(jpfield1, constraints); 
    jpanel.add(jpfield1); 
    
    //       ,          
    constraints = getGridBagConstraints(0,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0); 
    gridbag.setConstraints(jbutton3, constraints); 
    jpanel.add(jbutton3); 
   
    //        
    constraints = getGridBagConstraints(1,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0); 
    gridbag.setConstraints(jbutton1, constraints); 
    jpanel.add(jbutton1); 
   
    //        
    constraints = getGridBagConstraints(2,2,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(10,0,10,0),0,0); 
    gridbag.setConstraints(jbutton2, constraints); 
    jpanel.add(jbutton2); 
     
    //        
    jframe.add(jpanel); 
    //        
  } 
  
   private static GridBagConstraints getGridBagConstraints(int gridx,int gridy,int gridwidth,int gridheight,double weightx,double weighty,int anchor,int fill,Insets insets,int ipadx,int ipady){ 
     return new GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, insets, ipadx, ipady); 
   } 
  
   public static void main(String[] args) { 
     new GUIT(); 
     jframe.setVisible(true); 
   } 
} 
그 중 ddmbg 는 그림 이름 입 니 다.
(2)실현 효 과 는 그림 과 같다.

GUI 디자인 에서 레이아웃 은 기본 이자 매우 중요 한 지식 이다.
3 대 레이아웃 과 다른 레이아웃 관리 자 를 능숙 하 게 사용 하려 면 스스로 코드 를 두 드 리 는 연습 이 필요 하 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기