2016-12-29 15 views
0

この画像(Login Frame)のようなログインフレームを作りたかったのです。 setBoundを使用してこれらのコンポーネントを設定するには、setBounds()メソッドを使用しました。setLayout()をnullに設定しました。今私は私のログインフレームに背景画像を追加したいのですが、setLayout()をnullに使用したので、画像を設定できません。ログイン画像に背景画像を設定しようとしています

`public LoginFrame() 
    { 

    JFrame frame=new JFrame("Login"); 

      frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); 


     frame.setLayout(null); 

      uid=new JLabel("Email Id"); 
    uid.setBounds(60,50,120,25); 
      frame.add(uid); 

      tid=new JTextField(20); 
     tid.setBounds(120, 50,150,24); 
      frame.add(tid); 

      upass=new JLabel("Password"); 
    upass.setBounds(53,80,120,25); 
      frame.add(upass); 

      tpass=new JPasswordField(20); 
      tpass.setBounds(120, 80,150,24); 
       frame.add(tpass); 

       Login=new JButton("Login"); 
       Login.setBounds(150,110,80,25); 
       frame.add(Login); 

        frame.setSize(370,216); 
      frame.setResizable(false); 
      frame.setVisible(true); 

    frame.setLocationRelativeTo(null); 
    JLabel background=new JLabel(new ImageIcon("C:\\Users\\Tousif\\Desktop\\Login.jpg")); 
    add(background); 
} 

public static void main(String []arg) 
{ 
    new LoginFrame(); 
} 

} `

答えて

0

あなたは、背景画像を追加するためにsetContentPaneを使用する必要があり、これを試してみてください。私は、私は画像を設定することはできませんnullに)(setLayoutのを使用して、あなたは

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPasswordField; 
import javax.swing.JTextField; 

public class LoginFrame{ 
    public LoginFrame() { 
     JLabel uid, upass; 
     JTextField tid; 
     JPasswordField tpass; 
     JButton Login; 

     JFrame frame = new JFrame("Login"); 

     frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); 

     frame.setLayout(null); 
     JLabel background = new JLabel(new ImageIcon(
       "C:\\Users\\Tousif\\Desktop\\Login.jpg")); 
     frame.setContentPane(background); 

     uid = new JLabel("Email Id"); 
     uid.setBounds(60, 50, 120, 25); 
     frame.add(uid); 

     tid = new JTextField(20); 
     tid.setBounds(120, 50, 150, 24); 
     frame.add(tid); 

     upass = new JLabel("Password"); 
     upass.setBounds(53, 80, 120, 25); 
     frame.add(upass); 

     tpass = new JPasswordField(20); 
     tpass.setBounds(120, 80, 150, 24); 
     frame.add(tpass); 

     Login = new JButton("Login"); 
     Login.setBounds(150, 110, 80, 25); 
     frame.add(Login); 

     frame.setSize(370, 216); 
     frame.setResizable(false); 


     frame.setLocationRelativeTo(null); 

     frame.setVisible(true); 
    } 

    public static void main(String[] arg) { 
     new LoginFrame(); 
    } 
} 
..あなたは、テキストフィールドなどのラベル、のような他のオブジェクトを追加する必要が最初に背景画像を追加する
0

を必要とするが、 。

正確に。ヌルレイアウトは使用しないでください。 Swingはレイアウトマネージャで使用するように設計されています。あなたはレイアウトが気に入らない場合は、ユーザ別のLayout Managerその後、

JLabel background = new JLabel(...); 
background.setLayout(new GridLayout(0, 2)); 
background.add(label1); 
background.add(textField1); 
background.add(label2); 
background.add(textField2); 
frame.add(background); 

簡単な例として、あなたのような何かを行うことができます。

関連する問題