具体方法如下:
1、打开eclipse创建一个test项目,并且把图片放进去。
2、创建一个“JLable_test”类文件。
3、首先创建两个变量imageIcon以及jlable。
4、创建frame窗口并显示。
5、通过addComponentListener方法监听窗口变化。
6、在监听窗口变化的方法中我们可以,每次窗口变换就删除jlable组件,并通过frame的getSize方法获得窗口大小设置为图片的宽高,然后再重新添加jlable组件显示。
7、运行后我们发现图片是填满窗口的,对窗口进行变换缩放的时候,jlable中的图片也会随之缩放。
lz 你好
代码修改如下:
(有注释)
import java.awt.*import javax.swing.*
import java.io.*
import java.awt.event.*
//自定义一个面板类
class MyPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g)
//绘制一张背景图片 view.jpg是图片的路径 lz自己设定为自己想要添加的图片
Image image = new ImageIcon("view.jpg").getImage()
g.drawImage(image, 0, 0, this)
}
}
public class denglu extends JFrame {
//设置一个含有背景图片的面板
private MyPanel panel
private JLabel lab_zhanghao = new JLabel("账号:")
private JTextField jta_text = new JTextField()
Font lab = new Font("楷体",1,30)
private JLabel lat_password = new JLabel("密码:")
Font lat = new Font("楷体",1,30)
private JTextField jtb_text = new JTextField()
private JButton btn_register = new JButton("注册")
private JButton btn_land = new JButton("登陆")
Font btn = new Font("黑体",2,30)
public static int pd = 0
public static String ak1, ak2
private Container contentPane = this.getContentPane()
public denglu () {
this.setSize(400,300)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
this.setLocationRelativeTo(null)
this.setTitle("登陆")
this.setResizable(false)
btn_register.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
pd = 1
ak1 = jta_text .getText()
ak2 = jtb_text .getText()
String fileName = "E:\\users.dat"
try {
Writer writer = new FileWriter(fileName)
} catch (IOException e1) {
e1.printStackTrace()
}
jta_text.setText("")
jtb_text.setText("")
JOptionPane.showMessageDialog(null,"注册成功! 您的用户名是"+ak1+"密码是"+ ak2)
}
})
btn_land.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(pd==1) {
if(ak1.equals(jta_text.getText()) && ak2.equals(jtb_text.getText())) {
JOptionPane.showMessageDialog(null, "登录成功!")
} else {
JOptionPane.showMessageDialog(null,"登陆失败!检查账号密码是否正确",null,
JOptionPane.ERROR_MESSAGE, null)
jta_text .setText("")
jtb_text .setText("")
}
}
}
})
init()
panel = new MyPanel()
//将所有的组件添加到panel面板中
panel.add(lab_zhanghao)
panel.add(lat_password)
panel.add(jta_text)
panel.add(jtb_text)
panel.add(btn_register)
panel.add(btn_land)
panel.setLayout(null)
getContentPane().add(panel)
}
private void init() {
lab_zhanghao.setSize(200,100)
lab_zhanghao. setLocation(50,20)
lab_zhanghao.setFont(lab)
lat_password.setSize(200,100)
lat_password.setLocation(50,80)
lat_password.setFont(lat)
jta_text.setSize(190,30)
jta_text.setLocation(160,55)
jtb_text.setSize(190,30)
jtb_text.setLocation(160,115)
btn_register.setSize(120, 40)
btn_register.setLocation(60, 180)
btn_land.setSize(120, 40)
btn_land.setLocation(230, 180)
btn_register.setFont(btn)
btn_land.setFont(btn)
}
public static void main(String[] args)
throws ClassNotFoundException,
InstantiationException, IllegalAccessException,
UnsupportedLookAndFeelException {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel")
new denglu().setVisible(true)
}
}
我这儿的运行效果:
希望能帮助你哈
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)