因为最近课设需要,所以就学习了一些,先总结一点
一.所要总结的知识点:
1.控件的正确摆放姿势.
2. java图形中常用的控件.
3.如何给JPanel,JLabel,JButton中添加背景图片
4.列表选择框JComboBox,JList
5.给面板或者控件设置炫酷边框
二.逐一介绍:
1. java图形中常用的控件
- 常用窗体:JFrame、JDialog。窗体好比一块空白的画布,你可以任意添加按钮等组件到其中,也可以设置窗体的属性(大小、边界、排布等)。JFrame是一个主窗体,在一个项目中只能有一个。而JDialog 窗体是Swing组件中的对话框,它继承了AWT组件中java.awt.Dialog类,弹出新窗体。有点像弹出对话框。
- 按钮:JButton
- 标签类:JLabel。JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。
构造方法介绍:
JLabel() 创建无图像并且其标题为空字符串的 JLabel。
JLabel(Icon image) 创建具有指定图像的 JLabel 实例。
JLabel(Icon image, int horizontalAlignment) 创建具有指定图像和水平对齐方式的 JLabel 实例。
JLabel(String text) 创建具有指定文本的 JLabel 实例。
JLabel(String text, Icon icon, int horizontalAlignment) 创建具有指定文本、图像和水平对齐方式的 JLabel 实例。
JLabel(String text, int horizontalAlignment) 创建具有指定文本和水平对齐方式的 JLabel 实例。
文本框和文本区框和密码输入框:JTextField和JTextArea和JPasswordField。
**一:JTextField的(文本框)使用:** JTextField 是一个轻量级组件,它允许编辑单行文本。 1.JTextField的常用构造方法: JTextField() 构造一个新的 TextField。 JTextField(int columns) 构造一个具有指定列数的新的空 TextField。 JTextField(String text) 构造一个用指定文本初始化的新TextField。 JTextField(String text, int columns) 构造一个用指定文本和列初始化的新TextField。 2.JTextField的常用方法: SetText(string) 设置文本域中的文本值 GetText()返回文本域中的输入文本值 getColumns()返回文本域的列数 setEditable(Boolean) 设置文本域是否为只读状态 **二.JTextArea的常用构造方法:** JTextArea() 构造新的 TextArea。 JTextArea(String text) 构造显示指定文本的新的 TextArea。 JTextArea(int rows, int columns) 构造具有指定行数和列数的新的空 TextArea。 JTextArea(String text, int rows, int columns) 构造具有指定文本、行数和列数的新的 TextArea。
列表选择框:JComboBox,JList。JComboBox是下拉列表框,JList是将列表的信息都显示出来,也可以用 JScrollPane来将它设置为可滚动的模式.因为这两个控件的方法都是相同的,这里我只列出一个.
举个JComboBox例子
String []yt = new String[12];
String yta = “号演出厅”;
for(int i = 0; i<12; i++)
{
String a = String.valueOf(i+1);
String b = a + yta;
yt[i] = b;
}
JComboBox jbox = new JComboBox(yt);
2.控件的正确摆放姿势.
关于JavaGUI中控件的摆放有两种方式,第一种是通过一些布局的框架:如,流式布局FlowLayout,表格布局GridLayout,边界BorderLayout。卡片布局 CardLayout,这几种布局我在这不做介绍,具体可参考博客
(http://blog.csdn.net/u012566693/article/details/44916069)
第二种方式是通过控件的绝对布局,每一个控件都有setBounds(x, y, width, height)方法,其中x和y代表该控件在父控件的水平和竖直距离,后两个分别代表该控件的宽和高.使用绝对布局,你创建面板的时候必须将面板的布局设置为空如,JPanel p = new JPanel(); p.setLayou(null);,因为面板的默认布局为流式布局,这样你就不能使用绝对布局.
我个人觉得摆放控件最简单的方式就是用绝对布局,这样可以精准控制控件的位置.
3.如何给JPanel,JLabel,JButton中添加背景图片
1:JPanel:先定义一个面板的类,然后通过构造方法来创建一个具体大小和背景图片的面板.
import javax.swing.*;
import java.awt.*;
class GetPanel extends JPanel {
private static final long serialVersionUID = 1L;
int width = 0, hight = 0;
String imgpath = “”;
public GetPanel(int width, int hight, String file) {
this.width = width;
this.hight = hight;
imgpath = file;
}
protected void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon(imgpath);
Image img = icon.getImage();
g.drawImage(img, 0, 0, width, hight, this);
}
}JPanel p= new GetPanel(650,300,”/Ttms/image/12.png”);
p.setLayout(null);JLabel和JButton一样:有两种方式,第一种是在定义的时候设置背景图,第二种是在定义之后设置,这里只列出JLabel;
1:JLabel l = new JLabel(new ImageIcon(“/Ttms/image/5t.png”));
2:JLabel l = new JLabel();
l.setIcon(new ImageIcon(“/Ttms/image/5t.png”));
4.给面板或者控件设置炫酷边框
java中常用setBorder来设置控件的边框详细请看
博客:http://blog.csdn.net/songjunyan/article/details/19031421