java图形界面怎么添加图片,java图形界面里面如何实现图片缩放

Java codepackage musicPlatform.client.login;

import java.awt.*;

import javax.swing.*;

import musicPlatform.client.config.SaveMusicFileDirectory;

import testSwing2.UsedToChangeMyFrame;

public class SubstituteLoginFrame extends JFrame {

private static final long serialVersionUID = 2022587044957057382L;

private JButton jButton1;// 登录

private JButton jButton2;// 注册

private JLabel jLabel2;// 密码

private JPasswordField jTextField2;// 密码

private JTextField jTextField1;// 用户名

private JLabel jLabel1;// 用户名

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

new SubstituteLoginFrame();

}

});

}

private static void clientConfig() {

String defaultPath = System.getProperty("user.home") + "\\" + "music";

SaveMusicFileDirectory save = new SaveMusicFileDirectory();

save.creatXML(defaultPath);

}

public SubstituteLoginFrame() {

super();

autoTest();// 检查服务器

init();

}

/**

* 首次开启客户端时检查连接状态

*/

private void autoTest() {

RespondLoginEnter res = new RespondLoginEnter();

res.initialTestLinkage();

}

public void illegalCallingEntrance() {

SubstituteLoginFrame lf = new SubstituteLoginFrame();

lf.setLocationRelativeTo(null);

lf.setVisible(true);

}

public void init() {

Container c = this.getContentPane();

JPanel lowerPanel = new MyPanelk();

c.add(lowerPanel);

GroupLayout lowerPanelLayout = new GroupLayout((JComponent) lowerPanel);

lowerPanel.setLayout(lowerPanelLayout);

lowerPanel.setLocale(new java.util.Locale("zh", "TW"));

// lowerPanel.setPreferredSize(new Dimension(1100, 680));

{

jButton1 = new JButton();

jButton1.setText("注册");

}

{

jButton2 = new JButton();

jButton2.setText("\u767b\u5f55");

}

{

jLabel1 = new JLabel();

jLabel1.setText("\u7528\u6237\u540d");

jLabel1.setFont(new java.awt.Font("微软雅黑", 3, 11));

jLabel1.setForeground(new java.awt.Color(255, 255, 255));

}

{

jLabel2 = new JLabel();

jLabel2.setText("\u5bc6\u7801");

jLabel2.setFont(new java.awt.Font("微软雅黑", 3, 11));

jLabel2.setForeground(new java.awt.Color(255, 255, 255));

}

{

jTextField2 = new JPasswordField();

jTextField2.addFocusListener(new FocusAdapter() {

public void focusGained(FocusEvent evt) {

jTextField2.selectAll();

}

});

}

{

jTextField1 = new JTextField();

jTextField1.addFocusListener(new FocusAdapter() {

public void focusGained(FocusEvent evt) {

jTextField1.selectAll();

}

});

}

lowerPanelLayout.setVerticalGroup(lowerPanelLayout

.createSequentialGroup()

.addContainerGap(63, 63)

.addGroup(

lowerPanelLayout

.createParallelGroup(

GroupLayout.Alignment.BASELINE)

.addComponent(jTextField1,

GroupLayout.Alignment.BASELINE,

GroupLayout.PREFERRED_SIZE, 21,

GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel1,

GroupLayout.Alignment.BASELINE,

GroupLayout.PREFERRED_SIZE,

GroupLayout.PREFERRED_SIZE,

GroupLayout.PREFERRED_SIZE))

.addGap(19)

.addGroup(

lowerPanelLayout

.createParallelGroup(

GroupLayout.Alignment.BASELINE)

.addComponent(jTextField2,

GroupLayout.Alignment.BASELINE,

GroupLayout.PREFERRED_SIZE, 21,

GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel2,

GroupLayout.Alignment.BASELINE,

GroupLayout.PREFERRED_SIZE,

GroupLayout.PREFERRED_SIZE,

GroupLayout.PREFERRED_SIZE))

.addGap(29)

.addGroup(

lowerPanelLayout

.createParallelGroup(

GroupLayout.Alignment.BASELINE)

.addComponent(jButton2,

GroupLayout.Alignment.BASELINE,

GroupLayout.PREFERRED_SIZE, 22,

GroupLayout.PREFERRED_SIZE)

.addComponent(jButton1,

GroupLayout.Alignment.BASELINE,

GroupLayout.PREFERRED_SIZE, 22,

GroupLayout.PREFERRED_SIZE))

.addContainerGap(45, 45));

lowerPanelLayout

.setHorizontalGroup(lowerPanelLayout

.createSequentialGroup()

.addContainerGap(108, 108)

.addGroup(

lowerPanelLayout

.createParallelGroup()

.addGroup(

lowerPanelLayout

.createSequentialGroup()

.addGroup(

lowerPanelLayout

.createParallelGroup()

.addComponent(

jLabel1,

GroupLayout.Alignment.LEADING,

GroupLayout.PREFERRED_SIZE,

46,

GroupLayout.PREFERRED_SIZE)

.addGroup(

GroupLayout.Alignment.LEADING,

lowerPanelLayout

.createSequentialGroup()

.addComponent(

jLabel2,

GroupLayout.PREFERRED_SIZE,

26,

GroupLayout.PREFERRED_SIZE)

.addGap(20)))

.addPreferredGap(

LayoutStyle.ComponentPlacement.RELATED,

12,

Short.MAX_VALUE)

.addGroup(

lowerPanelLayout

.createParallelGroup()

.addComponent(

jTextField2,

GroupLayout.Alignment.LEADING,

GroupLayout.PREFERRED_SIZE,

108,

GroupLayout.PREFERRED_SIZE)

.addComponent(

jTextField1,

GroupLayout.Alignment.LEADING,

GroupLayout.PREFERRED_SIZE,

108,

GroupLayout.PREFERRED_SIZE)))

.addGroup(

GroupLayout.Alignment.LEADING,

lowerPanelLayout

.createSequentialGroup()

.addPreferredGap(

jLabel2,

jButton1,

LayoutStyle.ComponentPlacement.INDENT)

.addComponent(jButton1,

0, 67,

Short.MAX_VALUE)

.addGap(17)

.addComponent(

jButton2,

GroupLayout.PREFERRED_SIZE,

70,

GroupLayout.PREFERRED_SIZE)))

.addContainerGap(120, 120));

/**

* 注册监听

*/

{

jButton1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

// lf.setVisible(false);

// System.out.println("这里可以显示注册窗口了");

SubstituteLoginFrame.this.setVisible(false);

// SubstituteLoginFrame.this.dispose();

RespondLoginEnter res = new RespondLoginEnter();

res.testLinkage();

new LogonJFrame();

InOn inon = new InOn();// 保存本登录窗口对象

inon.backToLogin(SubstituteLoginFrame.this);

}

});

}

/**

* 登录监听

*/

{

// jButton1.addActionListener(new

// jButton1ActionListener(this));

jButton2.addActionListener(new ActionListener() { // 注册按钮事件

public void actionPerformed(ActionEvent event) { // 事件处理器

String userName = jTextField1.getText();

String password = jTextField2.getText();

// 检查输入合法性

if (ToolString.isInefficacy(userName)

|| ToolString.isInefficacy(password)) {

JOptionPane.showMessageDialog(null, " 用户名和密码不能为空",

"请重新输入", JOptionPane.ERROR_MESSAGE);

return;

}

RespondLoginEnter respondLogin = new RespondLoginEnter();

try {

// 连接服务器

respondLogin.linkage();

// 包装用户名,密码:request=login★userName=a★userPassword=d★

String nameAndPass = ToolString.packageLoginData(

userName, password);

// 发送用户名,密码

respondLogin.sendMessage(nameAndPass);// 发送成功后客户端若等不到服务器数据,界面不响应

// 获得服务器响应 收不到数据的处理?

System.out

.println("开始接收服务器数据:loginsuccess or loginfail!");

String receivedMsg = respondLogin.receiveMsg();

if (receivedMsg == null) {

System.out.println("服务器响应超时!");// 能否显示?????????????????

}

// respondLogin.close(); //

// 需要关闭????????????登錄成功也會關閉????????????????????????????

if (!"loginsuccess".equals(receivedMsg)) {

JOptionPane.showMessageDialog(null, "用户名或密码错误",

"登录失败", JOptionPane.ERROR_MESSAGE);

return;

} else {

// System.out.println("这里开始显示主页并关闭登录窗口");//

// -------------------------------------------------------

SubstituteLoginFrame.this.dispose();

// 登录成功, 显示主页窗口

new UsedToChangeMyFrame();

}

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

this.setVisible(true);

this.setResizable(false);

String direct = System.getProperty("user.dir")

+ "\\src\\icon\\pro\\key1.gif";

Image img = Toolkit.getDefaultToolkit().getImage(direct);

this.setIconImage(img);

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation(screenSize.width / 2 - 400 / 2,

screenSize.height / 2 - 250 / 2);

this.setTitle("\u97f3\u4e50\u5e73\u53f0");

// this.setSize(new Dimension(1100, 680));

this.setSize(new Dimension(400, 250));

}

}

class MyPanelk extends JPanel {

/**

*

*/

private static final long serialVersionUID = 1L;

@Override

public void paintComponent(Graphics g) { // 重绘函数

Graphics2D g2 = (Graphics2D) g;

super.paintComponent(g);

String directory = System.getProperty("user.dir")

+ "\\src\\icon\\pro\\wow2.jpg";

Image img = Toolkit.getDefaultToolkit().getImage(directory);

g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this); // 在面板上绘制背景图片

}

}

------解决方案--------------------

Image的getScaledINnstance(int width, int height, int hints)方法

------解决方案--------------------Java code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值