我在Java面板中有一个登录表单,带有用户名/密码字段.
我想在此登录表单下方添加背景图片.
实现这一目标的最佳方法是什么?
提供示例代码的额外奖励,因为我很难搞清楚这一点.
aio*_*obe 12
我头脑中的两个选项:
在绘制子组件之前,覆盖包含登录表单的面板的paint方法以绘制背景图像.
请执行下列操作
opaque(false)在包含登录表单的面板上设置,演示第二种方法:
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);
}
}
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
30674 次 |
| 最近记录: |