文章目录

  • 一、设置窗体的背景图
  • 二、设置Button组件
  • 三、设置字体大小和颜色
  • 四、设置组件的背景色
  • 五、综合测试案例

一、设置窗体的背景图

利用JLable类的构造方法或方法加载图片

ImageIcon image = new ImageIcon("D:\\背景.jpg");
JLabel jlable = new JLabel(image);
// JLabel jLabel = new JLabel();
// jLabel.setIcon(image);

当我们需要设置窗体的背景图,并将一些组件放到背景图上时,发现组件并不会显示出来。此时我们可以使用JLayeredPane类来实现。

// 创建一个JLayeredPane用于分层的。
JLayeredPane layeredPane = new JLayeredPane();
// 获取图片
ImageIcon image = new ImageIcon("D:\\背景.jpg");
// JLabel用于存放背景图片,作为背景添加到JPanel上
JLabel jlable = new JLabel(image);
// 创建JPanel,并将JLabel添加
JPanel jpanel = new JPanel();
// 设置JPanel大小为背景图片大小
jpanel.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
jpanel.add(jlable);JButton button=new JButton("hello");
button.setBounds(0,75,200,75);//将jpanel放到JLayeredPane的最底层
layeredPane.add(jpanel,JLayeredPane.DEFAULT_LAYER);
//将button放到jpanel高一层的地方
layeredPane.add(button,JLayeredPane.MODAL_LAYER);//设置窗体
this.setLayeredPane(layeredPane);
this.setSize(image.getIconWidth(),image.getIconHeight());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);

二、设置Button组件

# 将按钮填充的背景图改为透明
button1.setContentAreaFilled(false);
# 将按钮的边框隐藏
button2.setBorder(null);

测试案例:

public class myFrame extends JFrame {public myFrame() {// 创建一个JLayeredPane用于分层的。JLayeredPane layeredPane = new JLayeredPane();// 获取图片ImageIcon image = new ImageIcon("C:\\Users\\28194\\Pictures\\Camera Roll\\地球.png");// JLabel用于存放背景图片,作为背景添加到JPanel上JLabel jlable = new JLabel(image);// 创建JPanel,并将JLabel添加JPanel jpanel = new JPanel();// 设置JPanel大小为背景图片大小jpanel.setBounds(0,0,300,400);jpanel.add(jlable);JButton button1=new JButton("hello");button1.setBounds(0,75,100,75);button1.setContentAreaFilled(false);button1.setBorder(null);JButton button2 = new JButton("world");button2.setBounds(200,75,100,75);button2.setContentAreaFilled(false);button2.setBorder(null);//将jpanel放到JLayeredPane的最底层layeredPane.add(jpanel,JLayeredPane.DEFAULT_LAYER);//将button放到jpanel高一层的地方layeredPane.add(button1,JLayeredPane.MODAL_LAYER);layeredPane.add(button2,JLayeredPane.MODAL_LAYER);//设置窗体this.setLayeredPane(layeredPane);this.setSize(400,400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public static void main(String[] args) {myFrame myjframe =  new myFrame();}
}

三、设置字体大小和颜色

Font f = new Font("隶书",Font.PLAIN,30);设置按钮字体
button.setFont(f);
设置字体的颜色
button.setForeground(Color.RED);

四、设置组件的背景色

setBackgroud()

五、综合测试案例

import javax.swing.*;
import java.awt.*;public class MyJFrame extends JFrame {Font f = new Font("隶书",Font.PLAIN,30);Font f_user = new Font("隶书",Font.PLAIN,17);JButton jb1,jb2,jb3,jb4,jb5,jb6;public MyJFrame () {//创建一个JLayeredPane用于分层的。JLayeredPane layeredPane=new JLayeredPane();//获取图片ImageIcon image=new ImageIcon("C:\\Users\\28194\\Pictures\\Saved Pictures\\背景.jpg");//JLabel用于存放背景图片,作为背景添加到JPanel上JLabel jl=new JLabel(image);//创建JPanel,并将JLabel添加JPanel jp=new JPanel();//设置JPanel大小为背景图片大小jp.setBounds(0,0,image.getIconWidth(),image.getIconHeight());jp.add(jl);JLabel jLabel_title = new JLabel("教务管理系统");jLabel_title.setBounds(25,0,200,90);jLabel_title.setFont(f);JLabel jLabel_user = new JLabel("用户:user");jLabel_user.setBounds(700,0,100,90);jLabel_user.setFont(f_user);JPanel jPanel_label = new JPanel();jPanel_label.setLayout(null);jPanel_label.setBackground(Color.cyan);jPanel_label.setBounds(0,0,image.getIconWidth(),90);jPanel_label.add(jLabel_title);jPanel_label.add(jLabel_user);//创建测试按钮jb1=new JButton("系别管理");jb1.setBounds(0,75,200,75);jb1.setFont(f);jb1.setForeground(Color.RED);jb1.setContentAreaFilled(false);jb1.setBorder(null);jb2=new JButton("课程管理");jb2.setContentAreaFilled(false);jb2.setBorder(null);jb2.setBounds(0,150,200,75);jb2.setFont(f);jb2.setForeground(Color.RED);jb3=new JButton("成绩管理");jb3.setContentAreaFilled(false);jb3.setBorder(null);jb3.setBounds(0,225,200,75);jb3.setFont(f);jb3.setForeground(Color.RED);jb4=new JButton("学生资料查询");jb4.setContentAreaFilled(false);jb4.setBorder(null);jb4.setBounds(0,300,200,75);jb4.setFont(f);jb4.setForeground(Color.RED);jb5=new JButton("学生成绩查询");jb5.setContentAreaFilled(false);jb5.setBorder(null);jb5.setBounds(0,375,200,75);jb5.setFont(f);jb5.setForeground(Color.RED);jb6=new JButton("数据分析");jb6.setContentAreaFilled(false);jb6.setBorder(null);jb6.setBounds(0,450,200,75);jb6.setFont(f);jb6.setForeground(Color.RED);JPanel jPanel = new JPanel();jPanel.setLayout(null);jPanel.setBackground(Color.darkGray);jPanel.setBounds(0,100,200,image.getIconHeight());jPanel.add(jb1);jPanel.add(jb2);jPanel.add(jb3);jPanel.add(jb4);jPanel.add(jb5);jPanel.add(jb6);//将jp放到JLayeredPane的最底层layeredPane.add(jp,JLayeredPane.DEFAULT_LAYER);//将jb放到jp高一层的地方layeredPane.add(jPanel_label,JLayeredPane.MODAL_LAYER);layeredPane.add(jPanel,JLayeredPane.MODAL_LAYER);//设置窗体this.setLayeredPane(layeredPane);this.setSize(image.getIconWidth(),image.getIconHeight());this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public static void main(String[] args) {MyJFrame myjframe = new MyJFrame();}
}

Java Swing 如何让界面更加美观相关推荐

  1. java swing刷新_Swing界面刷新问题(转)

    在Java Swing编程中,往往会遇到需要动态刷新界面的时候,例如动态刷新JLabel的文本,JTextField里的文本等等.但是往往却没有达到我们预期的效果,我相信很多朋友都遇到过本文将要说的这 ...

  2. JAVA Swing 图形化界面编程

    JAVA Swing 图形化界面编程 目录 1.组件 1.1 基本组件 1.2. 组件边框 1.3. JToolBar 工具条 1.4 JColorChooser 颜色选择器 1.5 JFileCho ...

  3. java Swing QQ登陆界面

    这几天写了一个QQ登录界面,本来想做到高仿的,但是现在得做Kinect项目,无奈这个就得放一放了,但是现在这里做个记录 先说一下思想: 由JFrame和多个JPanel组成, 1.界面要重新修整,主要 ...

  4. Java Swing用户登陆界面

    import javax.swing.*;import java.awt.*; //导入必要的包public class Home extends JFrame{private JPanel jPan ...

  5. Java Swing界面设计UI(全)

    原文链接: http://blog.csdn.net/xietansheng/article/details/72814531 Java Swing GUI 图形界面窗口开发基础教程,本教程将系统性地 ...

  6. java 雷霆战机 教程,java swing实现简单的雷霆战机小游戏项目源码附带视频指导修改教程...

    <p> <span style="font-family:微软雅黑;font-size:19px;color:#666666;background-color:#FFFFF ...

  7. java awt 简单计算器,JAVA Swing 开发简易计算器(上)

    开发一个简易的计算器我们主要分为两大部分:图形界面设计与具体功能实现.这篇文章讲图形界面设计,下篇讲具体功能实现. 代码下载:https://github.com/taifus/Java_Calcul ...

  8. 数据库小组作业-学生选课系统(java+java swing+mysql实现)

    最近数据库老师要求组一个小组并且完成一个题目 我们组选择的是学生选课系统,恰巧这学期刚好在学java,所以就用java swing来写界面,数据库使用mysql 注:开发中使用的idea版本为2020 ...

  9. Java Swing音乐播放器

    该音乐播放器是用Java swing编写的界面,分为客户端和服务端,用户可以通过登录客户端,进行本地以及在线音乐的播放,管理人员可以通过服务器进行在线音乐的导入和管理. 本地音乐下,用户可以进行歌曲的 ...

  10. 让JAVA 中Swing界面更加美观

    在学习JAVA Swing界面制作的时候,总会觉得自己做得界面特别的丑,下面来分享自己在当时寻找到的几种让界面看起来更加高大尚一些的方法 1.用标签(JLabel)去去代替按钮(JButton)来实现 ...

最新文章

  1. ICCV 2021 Oral | 清华提出PoinTr:几何敏感的点云补全Transformer
  2. vue 表格左右拖拽调整列宽_解决 | iview低版本实现表格拖拽,滚动条列宽计算问题...
  3. 中国开发者新福利:大模型API接口出炉,让普通用户玩转内容生成
  4. 印尼互联网交换中心失火,或由电路短路引发
  5. centos7 php多版本切换_centos7安装python3
  6. C++ 类模板二(类模版与友元函数)
  7. golang中package的4种导入方式
  8. 关于总结记录的一点体会
  9. [渝粤教育] 西南科技大学 公共关系学 在线考试复习资料
  10. java集合学习笔记--二维集合HashMap
  11. 表情识别(一)——使用Dlib、opencv和Python识别面部特征
  12. 基于python3,抓取韩寒博客文章
  13. 详解如何用爬虫工具批量采集阿里巴巴批发网商品数据
  14. 如何对CAD图纸快速测量?
  15. 学习笔记-Power-Linux
  16. NS2中GOD的使用
  17. windows修改文件后缀名(文件扩展名)
  18. VUE后台管理系统权限管理
  19. 无线android auto车机,AAWireless适配器为Android Auto车机带来无线配对体验
  20. 谈一谈康得新的财务状况、大股东质押与股价走弱的原因

热门文章

  1. java三级分销_java版微信三级分销完整源码
  2. 多用户商城系统三级分销的设计和实现
  3. 什么是NVMe驱动器,您应该购买一个吗?
  4. c语言九九乘法表的值,c语言九九乘法表!
  5. Graph DataBase介绍
  6. 在线工具大全 - 推荐
  7. 计算机二级在线练,计算机二级操作练习题.doc
  8. PostgreSQL命令导入sql文件
  9. java extjs 教程_Extjs项目实战视频教程
  10. 机器学习笔记 - 基于最简单的编码器/解码器架构SegNet进行语义分割