2014-04-22 5 views
-1

내 응용 프로그램의 로그인 페이지를 만들려고했지만 잘 만들었지 만 JFrame에 이미지를 추가 할 수 없습니다. 여기에 로그인 페이지의 코드가 있습니다 ....기존 JFrame에 이미지를 삽입하는 방법

import javax.imageio.ImageIO; 
import javax.swing.*; 

import java.awt.*; 
import java.awt.event.*; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import java.sql.*; 

public class log extends JFrame { 

    // JDBC driver name and database URL 
     static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
     static final String DB_URL = "jdbc:mysql://sqldatabase.com/databasename"; 

     // Database credentials 
     static final String USER = "usernamr"; 
     static final String PASS = "pass"; 

    public static void main(String[] args) throws IOException { 
     log frameTabel = new log(); 
    } 

    JButton blogin = new JButton("Login"); 
    JPanel panel = new JPanel(); 
    JLabel label = new JLabel(); 
    JTextField txuser = new JTextField(15); 
    JPasswordField pass = new JPasswordField(15); 

    log() throws IOException{ 
     super("Login Autentification"); 

     setSize(500,500); 
     setLocation(300,280); 
     panel.setLayout (null); 

     //ImageIcon image = new ImageIcon("image.jpeg"); 
     //JLabel hangman = new JLabel(new ImageIcon(urlOfImageFile)); 
     //panel.add(image, BorderLayout.NORTH); 
     //Image image = ImageIO.read(new File("F:\\IModubytes\\Images\\1.jpg")); 
     //JLabel picLabel = new JLabel(new ImageIcon(image)); 
     //panel.add(picLabel); 
     //panel.repaint(); 

     txuser.setBounds(300,100,150,20); 
     pass.setBounds(300,135,150,20); 
     blogin.setBounds(380,170,80,20); 

     panel.add(blogin); 
     panel.add(txuser); 
     panel.add(pass); 

     getContentPane().add(panel); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setVisible(true); 
     actionlogin(); 
    } 

    public void actionlogin(){ 
     blogin.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent ae) { 
       Connection conn = null; 
        Statement stmt = null; 
       try { 
        Class.forName("com.mysql.jdbc.Driver"); 
        conn = DriverManager.getConnection(DB_URL, USER, PASS); 
        stmt = conn.createStatement(); 
        String puname = txuser.getText(); 
        String ppaswd = pass.getText(); 
        String sql = "SELECT * FROM EmpDetails WHERE id="+puname; 
        System.out.println(puname); 
        ResultSet rs = stmt.executeQuery(sql); 
        String pw = null; 
        while(rs.next()) { 
         pw = rs.getString("pass"); 
        } 
        rs.close(); 
        //if(puname.equals("test") && ppaswd.equals(pw)) { 
        if(ppaswd.equals(pw)) { 
         newFrame regFace =new newFrame(); 
         regFace.setVisible(true); 
         dispose(); 
        } else { 

         JOptionPane.showMessageDialog(null,"Wrong Password/Username"); 
         txuser.setText(""); 
         pass.setText(""); 
         txuser.requestFocus(); 
        } 
       } catch (ClassNotFoundException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (SQLException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 


      } 
     }); 
    } 
} 

사람이 어떻게에 이미지를 추가하는 방법 좀 도와 주실 래요 ....

답변

3

이미 이미지를로드하여 프레임에 레이블을 추가 할 수있는 코드가 있습니다.

다음 단계는 구성 요소를 패널에 추가하고 내용 분할 창에 패널을 추가하는 대신 레이블에 구성 요소를 추가 한 다음 내용 분할 창에 레이블을 추가하는 것입니다.

또한 null 레이아웃을 사용하지 마십시오! 스윙은 레이아웃 관리자와 함께 사용하도록 설계되었습니다. 자세한 내용과 작업 예제는 Layout Managers에있는 스윙 튜토리얼의 섹션을 읽어보십시오.

+0

패널 및 프레임을 처음 사용하기 때문에이 작업 방법을 알려주십시오 ....? –

+0

@ RamkumarP, 좀 더 자세하게 질문을 편집했습니다. – camickr

+0

고맙습니다 .... 저에게 작은 모범을 보여 주실 수 있습니까? –

관련 문제