2010-12-27 3 views
-1
import javax.swing.*; 
import java.awt.event.*; 
import java.util.Scanner; 
import java.awt.*; 
import javax.imageio.ImageIO;      
import java.awt.image.BufferedImage;  
import java.io.IOException; 
       ////////////////////////////////// 
       // 3nriched Games Presents: // 
       //  MIPS The Mouse!!  // 
       //////////////////////////////////   


public class mipsMouseGUI extends JFrame implements ActionListener 
    { 

    private static String ThePDub = ("mouse"); //the password 
    JPasswordField pass; 
    JPanel panel; 
    JButton btnEnter; 
    JLabel lblpdub; 

     public mipsMouseGUI() 
     { 
     BufferedImage image = null; 
     try { //attempts to read picture from the folder 
      image = ImageIO.read(getClass().getResource("/mousepics/mousepic.png")); 
     } catch (IOException e) { //catches exceptions 
      e.printStackTrace(); 
     } 
     setIconImage(image); //sets icon picture 



      setTitle("Mips The Mouse Login"); 

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      panel = new JPanel(); //creates a panel 
      ImagePanel panel = new ImagePanel(new ImageIcon("/mousepics/backgroundspacepic.jpeg").getImage()); 

      pass = new JPasswordField(5); //sets password length to 5   


      pass.setEchoChar('@'); //hide characters as @ symbol 
      pass.addActionListener(this); //adds action listener 


      add(panel); //adds panel to frame 
      btnEnter = new JButton("Enter"); //creates a button  
      btnEnter.addActionListener(this);// Register the action listener. 

      lblpdub = new JLabel("  Your Password: "); // label that says enter password 

      panel.add(lblpdub, BorderLayout.CENTER);// adds label and inputbox 
      panel.add(pass, BorderLayout.CENTER); // to panel and sets location 
      panel.add(btnEnter, BorderLayout.CENTER); //adds button to panel 
      pack();           // packs controls and 

      setLocationRelativeTo(null); // Implicit "this" if inside JFrame constructor. 

      setVisible(true);        // makes them visible (duh) 

     } 

     public void actionPerformed(ActionEvent a) 
      { 

       Object source = a.getSource(); 
      //char array that holds password 
      char[] passy = pass.getPassword(); 
      //characters array to string 
      String p = new String(passy); 

      //determines if user entered correct password 
      if(p.equals(ThePDub)) 
      { 
      JOptionPane.showMessageDialog(null, "Welcome beta user: USERNAME."); 
      } 
      else 
      JOptionPane.showMessageDialog(null, "You have enter an incorrect password. Please try again."); 
      } 

    class ImagePanel extends JPanel { 

      private Image img; 

     public ImagePanel(String img) { 
      this(new ImageIcon(img).getImage()); 
    } 

      public ImagePanel(Image img) { 
      this.img = img; 
      Dimension size = new Dimension(img.getWidth(null), img.getHeight(null)); 
      setPreferredSize(size); 
      setMinimumSize(size); 
      setMaximumSize(size); 
      setSize(size); 
      setLayout(null); 
    } 

      public void paintComponent(Graphics g) { 
      g.drawImage(img, 0, 0, null); 
    } 

} 
     } 
+4

무엇이 문제입니까? – Nivas

+0

sry. 그것은 패널을 올바르게 표시합니다. 배경 이미지를 볼 수 없습니다. – enriched

답변

1

이미지가 저에게 잘 보입니다. 이미지의 기본 크기를 표시하는 디버그 코드를 추가하여 올바르게 읽었는지 확인하십시오.

또한 이미지가 작동하면 실제로 이미지 패널에 추가하는 구성 요소가 표시되지 않습니다. 다음 코드 줄에서 무엇을하는지 또는 어딘가에서 복사했는지 알고 있습니까? 제거 :

setLayout(null);  

왜 비어있는 패널을 만든 다음 ImagePanel을 만드나요?

panel = new JPanel(); //creates a panel  
ImagePanel panel = new ImagePanel(new ImageIcon("/mousepics/backgroundspacepic.jpeg").getImage()); 
+0

내가 제안한 개정판을 만들려고했는데 컨트롤과 패널을 올바르게 표시했지만 지금은 기본 배경이 보이지 않습니다. 제안 사항은 무엇입니까? – enriched

+0

그래서 디버그 코드는 이미지가 올바르게 읽혔다는 것을 확인합니까? 아마 "/"의 선두는 필요 없습니다. – camickr