Java 패널에 사용자 이름/암호 필드가있는 로그인 양식이 있습니다.다른 구성 요소를 포함하는 패널에 배경 이미지 추가
이 로그인 양식 아래에 배경 이미지를 추가하고 싶습니다.
이것을 달성하는 가장 좋은 방법은 무엇입니까?
샘플 코드 제공을위한 추가 보너스. 알아보기 힘든 시간입니다. 내 머리의 상단에서
Java 패널에 사용자 이름/암호 필드가있는 로그인 양식이 있습니다.다른 구성 요소를 포함하는 패널에 배경 이미지 추가
이 로그인 양식 아래에 배경 이미지를 추가하고 싶습니다.
이것을 달성하는 가장 좋은 방법은 무엇입니까?
샘플 코드 제공을위한 추가 보너스. 알아보기 힘든 시간입니다. 내 머리의 상단에서
두 가지 옵션 :
재정의 아이-구성 요소를 그리기 전에 배경 이미지를 페인트 로그인 양식을 포함하는 패널의 페인트하는 방법.
opaque(false)
설정의 BorderLayout이 패널의 레이아웃 매니저를 설정합니다. 두 번째 방법의데모 :
import java.awt.*;
import javax.swing.*;
class BgPanel extends JPanel {
Image bg = new ImageIcon("water.jpg").getImage();
@Override
public void paintComponent(Graphics g) {
g.drawImage(bg, 0, 0, getWidth(), getHeight(), this);
}
}
class LoginPanel extends JPanel {
LoginPanel() {
setOpaque(false);
setLayout(new FlowLayout());
add(new JLabel("username: ")); add(new JTextField(10));
add(new JLabel("password: ")); add(new JPasswordField(10));
}
}
public class FrameTestBase extends JFrame {
public static void main(String args[]) {
JPanel bgPanel = new BgPanel();
bgPanel.setLayout(new BorderLayout());
bgPanel.add(new LoginPanel(), BorderLayout.CENTER);
FrameTestBase t = new FrameTestBase();
t.setContentPane(bgPanel);
t.setDefaultCloseOperation(EXIT_ON_CLOSE);
t.setSize(250, 100);
t.setVisible(true);
}
}
좋은 코드 +1, (기본 메소드는 invokeLated에 래핑되어야 함) – mKorbel
흠 .. 나는 그것이 그렇게되어야한다는 것을 완전히 확신하지 못한다. UI를 구현하는 * setVisible (true) 호출입니다. (IIRC,'setVisible (true)','show'와'pack'만이 UI를 실현합니다. 그때까지는 UI 스레드에 아무 것도 할 필요가 없습니다) – aioobe
마지막 두 코드 줄'pack (있는 경우 : -)'setVisible (true)'는 모든 경우에 래핑되어야하며,'drawImage' 메소드에서 – mKorbel
음 ... 내가 시작해야합니까? 오, 그래, [여기 : http://tinyurl.com/so-hints](http://tinyurl.com/so-hints). 해당 링크를 읽으십시오. 그럼 다시 가서 다시 읽어주세요. 또한 당신이 말하고있는 기술에 대해 말하면, 우리는 당신을 도울 수 있을지도 모른다. (Swing, AWT, JSP, JSF, SWT? –
http://stackoverflow.com/questions/5912913/how-can-i-put-a-jbutton-on-an-image – dacwe
견본 코드 제공을위한 추가 보너스 만 제공하고 싶습니다. 힘들어합니다. 이 문제에 대한 답은 http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html 및 http://download.oracle.com/javase/tutorial/uiswing/components/label에서 확인할 수 있습니다. html 및 http://download.oracle.com/javase/tutorial/uiswing/components/icon.html JLabel의 모든 JComponet에 대해 불투명 (false)을 설정하십시오. – mKorbel