ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java swing 学习总结

2020-01-20 16:02:28  阅读:451  来源: 互联网

标签:总结 Java int void JPanel 设置 swing new 文本


一、常用布局

  • 边界布局(BorderLayout)
  • 网格布局(GridLayout)
  • 流式布局(FlowLayout)
  • 绝对布局(null)

  边界布局(BorderLayout)

  按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。

 JPanel panel = new JPanel(new BorderLayout());

  

  网格布局(GridLayout)

  它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。

  GridLayout的常用构造方法

  • 默认构造, 每个组件占据一行一列
JPanel panel = new JPanel(new GridLayout());
  • 指定 行数 和 列数 的网格布局
JPanel panel = new JPanel(new GridLayout(int rows, int cols));
  • 指定行数和列数的网格布局, 并指定水平和竖直网格间隙
JPanel panel = new JPanel(new GridLayout(int rows, int cols, int hgap, int vgap));

  流式布局(FlowLayout)

  流式布局管理器。按水平方向依次排列放置组件,排满一行,换下一行继续排列。

  同一行(水平方向)的组件的对齐方式由 FlowLayout 的align属性确定,它可能的值如下:

  • FlowLayout.LEFT : 左对齐
  • FlowLayout.CENTER : 居中对齐(默认)
  • FlowLayout.RIGHT : 右对齐
  • FlowLayout.LEADING : 与容器方向的开始边对齐,例如,对于从左到右的方向,则与左边对齐
  • FlowLayout.TRAILING : 与容器方向的结束边对齐,例如,对于从左到右的方向,则与右边对齐。

  FlowLayout的常用构造方法

  • 默认 居中对齐的,水平和垂直间隙是 5 个单位
JPanel panel = new JPanel(new FlowLayout());
  • 指定对齐方式,默认的水平和垂直间隙是 5 个单位
JPanel panel = new JPanel(new FlowLayout(int align));
  • 指定对齐方式,水平和竖直 间隙
JPanel panel = new JPanel(new FlowLayout(int align, int hgap, int vgap));

  绝对布局(null)

  绝对布局没有特定一个布局管理器类来表示,给容器的布局管理器设置为 null,就表示使用绝对布局,即通过设置组件的坐标和宽高来布置组件。

  给组件设置坐标和宽高相的关方法,以Button为例

  

JPanel panel = new JPanel(null);
JButton  button= new JButton("Button");
//设置按钮的坐标
button.setLocation(int x, int y);
//设置按钮的宽高
button.setSize(int width, int height);
//设置按钮的界限(一次性设置组件的 坐标 和 宽高)
button.setBounds(int x, int y, int width, int height);

二、Swing的常用组件

  组件的常用方法

// 设置文本的字体类型、样式 和 大小
void setFont(Font font)
// 设置字体颜色
void setForeground(Color fg)
// 设置组件是否可见
void setVisible(boolean visible)
// 设置组件是否为 不透明,JLabel默认为透明,设置为不透明后才能显示背景
void setOpaque(boolean isOpaque)
// 设置组件的 首选 大小
void setPreferredSize(Dimension preferredSize)
// 设置组件的 最小 大小
void setMinimumSize(Dimension minimumSize)
// 设置组件的 最大 大小
void setMaximumSize(Dimension maximumSize)
  • JLabel(标签)
  • JButton(按钮)
  • JTextField(文本框)
  • JPasswordField(密码框)
  • JTextArea(文本区域)
  • JComboBox(下拉列表框)
  • JList(列表框)

 2.1、JLabel(标签)

  标签主要用于展示 文本 或 图片,也可以 同时显示文本和图片。

  JLabel 的构造方法:

/*
text: 标签显示的 文本
image: 标签显示的 图片
horizontalAlignment: 标签内容(在标签内)的水平对其方式(竖直方向默认居中, 可通过方法设置)
/*
JLabel label = new JLabel(String text);
JLabel label = new JLabel(String text, int horizontalAlignment);
JLabel label = new JLabel(Icon image);
JLabel label = new JLabel(Icon image, int horizontalAlignment);
JLabel label = new JLabel(String text, Icon image, int horizontalAlignment);

  JLabel 的常用方法:

// 设置 文本 和 图片
void setText(String text)
void setIcon(Icon icon)

// 设置文本相对于图片的位置(文本默认在图片右边垂直居中)
void setHorizontalTextPosition(int textPosition)
void setVerticalTextPosition(int textPosition)

// 设置标签内容(在标签内)的对其方式(默认左对齐并垂直居中)
void setHorizontalAlignment(int alignment)
void setVerticalAlignment(int alignment)

// 设置图片和文本之间的间隙
void setIconTextGap(int iconTextGap)

 2.2、JButton(按钮)

  JButton 常用构造方法:

// 创建不带有设置文本或图标的按钮
JButton button= new JButton();
// 创建一个带文本的按钮
JButton button= new JButton(String text);
// 创建一个带图标的按钮
JButton button= new JButton(Icon icon);

  JButton 常用方法:

// 设置按钮的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)

// 设置按钮是否可用
void setEnabled(boolean enable)

// 设置按钮在 默认、按下、不可用 时显示的图片
void setIcon(Icon defaultIcon)
void setPressedIcon(Icon pressedIcon)
void setDisabledIcon(Icon disabledIcon)

  JButton 常用监听器:

 button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                
            }
 });

 2.3、JTextField(文本框)

  JTextField 用来编辑单行的文本。

  JTextField 的常用方法:

// 获取文本框中的文本
String getText()

// 设置文本框的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)

// 设置颜色,分别为: 光标颜色、呈现选中部分的背景颜色、选中部分文本的颜色、不可用时文本的颜色
void setCaretColor(Color c)
void setSelectionColor(Color c)
void setSelectedTextColor(Color c)
void setDisabledTextColor(Color c)

// 设置文本内容的水平对齐方式
void setHorizontalAlignment(int alignment)

// 设置文本框是否可编辑
void setEditable(boolean b)

 

 2.4、JPasswordField(密码框)

  JPasswordField 继承自 JTextField,只是显示输入的内容时用特定的字符替换显示(例如 * 或 ●),用法和 JTextField 基本一致。

 2.5、JTextArea(文本区域)

  JTextArea 用来编辑多行的文本。JTextArea 除了允许多行编辑外,其他基本用法和 JTextField 基本一致。

  JTextArea 常用方法:

// 是否自动换行,默认为 false
void setLineWrap(boolean wrap)

// 设置自动换行方式。如果为 true,则将在单词边界(空白)处换行; 如果为 false,则将在字符边界处换行。默认为 false。
void setWrapStyleWord(boolean word)

// 获取文本框中的文本
String getText()

// 追加文本到文档末尾
void append(String str)

// 替换部分文本
void replaceRange(String str, int start, int end)

// 设置文本框的 文本、字体 和 字体颜色
void setText(String text)
void setFont(Font font)
void setForeground(Color fg)

// 获取内容的行数(以换行符计算,满行自动换下一行不算增加行数)
int getLineCount()

// 获取指定行(行数从0开始)的行尾(包括换行符)在全文中的偏移量
int getLineEndOffset(int line)

// 获取指定偏移量所在的行数(行数从0开始)
int getLineOfOffset(int offset)

// 设置颜色,分别为: 光标颜色、呈现选中部分的背景颜色、选中部分文本的颜色、不可用时文本的颜色
void setCaretColor(Color c)
void setSelectionColor(Color c)
void setSelectedTextColor(Color c)
void setDisabledTextColor(Color c)

三、Graphics 类

  Graphics 类相当于一个画布,每个 Swing 组件都通过 Graphics 对象来绘制显示。绘制线段、矩形、椭圆/圆弧/扇形、图片、文本

  • 线段 / 折线:
// 绘制一条线段(如果两点为同一点,则绘制点)
void drawLine(int x1, int y1, int x2, int y2)
// 根据给定的多个点坐标绘制折线
void drawPolyline(int xPoints[], int yPoints[], int nPoints)
  • 矩形 :
// 绘制一个矩形(空心)
void drawRect(int x, int y, int width, int height)
// 填充一个矩形(实心)
void fillRect(int x, int y, int width, int height)

// 绘制一个圆角矩形
void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
// 填充一个圆角矩形
void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

// 绘制一个3D矩形
void draw3DRect(int x, int y, int width, int height, boolean raised)
// 填充一个3D矩形
void fill3DRect(int x, int y, int width, int height, boolean raised)
  • 圆弧 / 扇形:
// 绘制一个圆弧(弧线)
void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
// 填充一个圆弧(扇形)
void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
  • 椭圆:
// 绘制一个椭圆
void drawOval(int x, int y, int width, int height)
// 填充一个椭圆
void fillOval(int x, int y, int width, int height)

 

四、Java 图片操作

  读取图片

  方法一: 通过 java.awt.Toolkit 工具类来读取本地、网络 或 内存中 的 图片(支持 GIF、JPEG 或 PNG)

Image image = Toolkit.getDefaultToolkit().getImage(String filename);
Image image = Toolkit.getDefaultToolkit().getImage(URL url);
Image image = Toolkit.getDefaultToolkit().createImage(byte[] imageData);

  方法二: 通过 javax.imageio.ImageIO 工具类读取本地、网络 或 内存中 的 图片(BufferedImage 继承自 Image)

BufferedImage bufImage = ImageIO.read(File input);
BufferedImage bufImage = ImageIO.read(URL input);
BufferedImage bufImage = ImageIO.read(InputStream input);

  

   通过Graphics 的 绘制方法设置图片为背景

  

JPanel jPanel = new javax.swing.JPanel() {
            @Override
            public void paintComponent(Graphics g) {
                super.paintComponent(g);
                ImageIcon ii = new ImageIcon("C:\\Users\\Administrator\\Desktop\\timg2.jpg");
                g.drawImage(ii.getImage(), 0, 0, getWidth(), getHeight(), ii.getImageObserver());
            }
};

标签:总结,Java,int,void,JPanel,设置,swing,new,文本
来源: https://www.cnblogs.com/crc01/p/12218304.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有