[JAVA] java swing GUI窗口美化方式

2233 0
王子 2022-11-8 17:51:43 | 显示全部楼层 |阅读模式
目录

    java swing GUI窗口美化java GUI初步理解
      什么是GUI容器与布局



java swing GUI窗口美化

一般我们写出的窗口是这个样子的,文本框和按钮都不是太美观,如果按钮是原色的就更难看了。


今天发现了一个更加美观的窗口模式


可以发现按钮和文本框都已经有了变化,给窗口润色不少。
其实,只需在调用程序前加上这段代码即可。
  1. try {
  2.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  3.                 if ("Nimbus".equals(info.getName())) {
  4.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  5.                     break;
  6.                 }
  7.             }
  8.         }catch(Exception e) {
  9.                 System.out.println(e);
  10.         }
复制代码
如果想改回来的话,把if语句中的“Nimbus”改为“Windows”就可以了,Java程序默认使用Windows模式。

java GUI初步理解


什么是GUI

GUI既图形用户界面,是一种以图形为主体的交互方式。
主要包括AWT组件以及Swing组件以及容器、布局和事件相关的类接口。
AWT是抽象窗口工具包的简称,其中有像窗口、按钮等组件。而Swing是基于AWT开发的,他的功能更加强大。目前大部分采用swing组件。

容器与布局

容器由Java.awt包提供(AWT中),Swing中由Java.swing包提供。
容器主要包括面板类(Panel)、窗口类(Window)、结构类(Frame)。
容器分为:顶层容器、中间容器、特殊容器。
除顶层容器外,其他两个不能单独显示,必须在一定容器中。
添加容器:使用add()方法。
下面让我们看一个例子,了解一些其他的方法!
  1. package testasdd;
  2. import java.awt.BorderLayout;
  3. import javax.swing.JButton;
  4. import javax.swing.JFrame;
  5. public class Guione {
  6. public static void main(String[] args) {
  7.   // TODO Auto-generated method stub
  8.   //创建窗口对象
  9.     JFrame frm =new JFrame();
  10.     //设置标题
  11.     frm.setTitle("我的世界");
  12.     //设置布局
  13.     frm.setLayout(new BorderLayout());
  14.     //设置显示位置及大小
  15.     frm.setBounds(500, 200, 200, 100);
  16.     //设置为可显示的窗口
  17.     frm.setVisible(true);
  18.     //创建按钮对象
  19.     JButton but=new JButton("wdwdw");
  20.     //添加按钮到窗口
  21.     frm.add(but);
  22.     //设置关闭方式
  23.     frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24. }
  25. }
复制代码
面板
面板就是可以将一个容器的界面分成不同的几个部分,有助于美化界面。
JFrame面板默认布局管理采用BorderLayout,最多管理五个组件。
  1. package testasdd;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. public class Guione {
  7. public static void main(String[] args) {
  8.   // TODO Auto-generated method stub
  9.   //创建窗口对象
  10.     JFrame frm =new JFrame();
  11.     //设置标题
  12.     frm.setTitle("我的世界");
  13.     //设置关闭方式
  14.     frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15.     frm.setVisible(true);
  16.     JPanel top=new JPanel();
  17.     frm.add(top,BorderLayout.NORTH);
  18.     //设置提示标签并添加显示信息
  19.     JLabel show=new JLabel();
  20.     show.setText("TERRARIA");
  21.     //创建输入框
  22.     JTextField input =new JTextField();
  23.     //设置为可编辑
  24.     input.setEditable(true);
  25.     //左侧输入
  26.     input.setHorizontalAlignment(SwingConstants.LEFT);
  27.     //20列
  28.     input.setColumns(20);
  29.     //创建按钮
  30.     JButton but=new JButton("提交");
  31.     //显示
  32.     top.add(show);
  33.     top.add(input);
  34.     top.add(but);
  35. }
  36. }
复制代码
设置一个带有滚动面板的窗体
  1. package testasdd;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6. public class Guione {
  7. public static void main(String[] args) {
  8.   JFrame frm=new JFrame();
  9.   frm.setTitle("滚动的窗体");
  10.   frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   //创建文本框
  12.   JTextArea ta=new JTextArea();
  13.   //设置行数
  14.   ta.setRows(10);
  15.   //设置列数
  16.     ta.setColumns(25);
  17.     //设置初始文本
  18.     ta.setText("我的老家");
  19.     //设置按钮
  20.     JButton but=new JButton("就在这个屯!");
  21.     //创建面板,添加组件
  22.     JPanel p=new JPanel();
  23.     p.add(ta);
  24.     p.add(but);
  25.     //创建滚动面板
  26.     JScrollPane sp=new JScrollPane();
  27.     //设置上面创建的,面板为组件
  28.     sp.setViewportView(p);
  29.     //将滚动面板设置为窗体内容面板
  30.     frm.setContentPane(sp);
  31.     frm.setBounds(500,250,300,150);
  32.     frm.setVisible(true);
  33. }
  34. }
复制代码
补充
设置水平或垂直分割的面板
JSplitPane
采用方法
  1. setOrientation(int orientation)
  2. HORIZONAL_SPLIT------>竖直
  3. VERTICAL_SPLIT---------->垂直
  4. -setDividerLocation(double proportionalLocation)
复制代码
设置比例
以上为个人经验,希望能给大家一个参考,也希望大家多多支持中国红客联盟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行