Tabla de contenido
1. Relación de herencia entre los componentes de Java Swing
1. Componente de etiqueta JLabel
2. Componente del botón JButton
5. Componente del cuadro de contraseña
6. Componente de campo de texto
2. Diseño de borde Diseño de borde
7. Oyentes de eventos de uso común
1. Relación de herencia entre los componentes de Java Swing
2. Marco J
JFrame es un contenedor, que es el portador de cada componente.
1. Crea un nuevo objeto JFrame
JFrame jframe = new JFrame(); //创建没有标题的窗口
JFrame jframe = new JFrame(String s); //创建标题为 s 的窗口
//JFrame类的setTitle(String s)方法也可设置标题
2. Establezca el tamaño del formulario JFrame.
frame.setLocationRelativeTo(null); puede configurar la ventana para que esté centrada
//通过JFrame的对象名调用以下方法实现对应功能
public void setSize(int width,int height){} //设置窗口的大小(单位为px)
public void setLocation(int x,int y){} //设置窗口的位置,默认位置是(0,0)
public void setBounds(int a,int b,int width,int height){} //设置窗口的初始位置是(a,b),窗口的宽是width,高是height
public void setVisible(boolean b){} //设置窗口是否可见,默认是false不可见的
public void setResizable(boolean b){} //设置窗口是否可被用户调整大小,默认是ture可调整
public void dispose(){} //撤销当前窗口,并释放当前窗口的所使用的资源
public void setExtentedState(int state){} //设置窗口的扩展状态
/**
* 其中state参数取JFrame类中下列类常量
* MAXIMIZED_HORIZ
* MAXIMIZED_VERT
* MAXIMIZED_BOTH
*/
3. Establecer el método de cierre de JFrame
public void setDefaultCloseOperation(int operation) //该方法用来设置单击窗体右上角的关闭图标后,程序会作出怎样的处理,其中operation参数取JFrame类中的下列int型static常量,程序会根据参数operation的取值作出不同的处理
/**
* DO_NOTHING_ON_CLOSE(什么也不做)
* HIDE_ON_CLOSE(隐藏当前窗口)
* DISPOSE_ON_CLOSE(隐藏当前窗口,并释放窗口所占有的其他资源)
* EXIT_ON_CLOSE(结束窗口所在的应用程序)
/
3. JDiálogo
Heredado de la clase java.awt.Dialog. Es otra forma que surge de una forma. Es similar a JFrame y requiere
Llame a getContentPane para convertir el formulario en un contenedor y luego configure el contenido del formulario en el contenedor.
JDialog: se puede utilizar como JFrame, pero debe estar subordinado a JFrame. Los métodos de la clase JFrame también están en JDialog
Sí, la única diferencia es que JDialog no tiene EXIT_ON_CLOSE en el método de cierre. Al mismo tiempo, debido a que JDialog está subordinado a JFrame,
Entonces, cuando se cierra la ventana JFrame, JDialog también se cerrará y viceversa no se verá afectado.
Constructor
JDialog jdialog = new JDialog();
JDialog jdialog = new JDialog(Frame f); //指定父窗口
JDialog jdialog = new JDialog(Frame f,String title); //指定父窗口+标题
4. Paneles de uso común
El panel también es un contenedor oscilante, se puede utilizar como contenedor para añadir o acomodar otros componentes, pero también debe estar en una posición
Dentro del contenedor.
1、JPanel
JPanel es el panel más simple, que hereda de la clase java.awt.Container
JFrame jframe = new JFrame("标题");
jframe.setBounds(400,300,1200,1200);
jframe.setVisible(true);
JButton jb = new JButton("按钮"); //new两个按钮组件
JButton jb1 = new JButton("按钮1");
JPanel jp = new JPanel(new FlowLayout()); //生成一个面板
jp.add(jb); //将两个按钮加入到面板中
jp.add(jb1);
jframe.add(jp); //将面板加入到另外的容器中
2、Panel de desplazamiento J
JScrollPane es un panel con barras de desplazamiento. Por lo tanto, utilice este panel cuando necesite colocar un componente grande en un espacio más pequeño. Solo se puede agregar un componente a un JScrollPane, por lo tanto, si necesita agregar varios componentes a un JScrollPane, primero debe agregar los componentes que se agregarán al JPanel y luego agregar el JPanel al JScrollPane.
JFrame jframe = new JFrame("标题");
jframe.setBounds(400,300,1200,1200);
jframe.setVisible(true);
JButton jb = new JButton("按钮");
jb.setSize(800,200); //设置按钮组件的尺寸
JScrollPane jp = new JScrollPane(jb); //把按钮组件放在JScrollPane中
jframe.add(jp);
5. Componentes de uso común
1. Componente de etiqueta JLabel
Mostrar texto o información solicitada
Método de construcción
JLabel jlabel = new JLabel();
JLabel jlabel = new JLabel(String str); //设置文本
JLabel jlabel = new JLabel(Icon icon); //设置图标
JLabel jlabel = new JLabel(String str,int aligment); //设置文本+水平对齐方式(LEFT、CENTER、RIGHT)
JLabel jlabel = new JLabel(String str,Icon icon,int aligment); //设置文本+图标+水平对齐方式
JFrame jf = new JFrame("标题");
jf.setBounds(400,300,1000,1000);
JLabel jl = new JLabel();
jl.setText("账号:");
jl.setFont(new Font("宋体",Font.PLAIN,30)); //设置标签的字体,尺寸等
jf.add(jl);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2. Componente del botón JButton
Método de construcción
JButton jb = new JButton();
JButton jb = new JButton(String text); //指定文字
JButton jb = new JButton(Icon icon); //指定图标
JButton jb = new JButton(String text,Icon icon); //指定文字+图标
Otros metodos
setEnabled(boolean n); //设置按钮是否可用
setBorderPainted(boolean n); //设置边界是否显示,默认是显示的
(1) Componente del botón de radio
JRadioButton es un botón de opción y el botón de opción debe agregarse al grupo de botones ButtonGroup.
Método de construcción
JRadioButton jrb = new JRadioButton();
JRadioButton jrb = new JRadioButton(String text); //指定文字
JRadioButton jrb = new JRadioButton(String text,boolean selected); //指定文字+是否选中
Ejemplo
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JRadioButton jrb = new JRadioButton("男");
JRadioButton jrb1 = new JRadioButton("女");
ButtonGroup bg = new ButtonGroup();
bg.add(jrb);
bg.add(jrb1);
jf.add(jrb);
jf.add(jrb1);
(2) Marque la casilla del componente
JCheckBox
Método de construcción
JCheckBox jb = new JCheckBox();
JCheckBox jb = new JCheckBox(String text,boolean checked); //指定文字+是否被选中
Ejemplo
JFrame jf = new JFrame("标题");
jf.setBounds(400,300,1000,1000);
JCheckBox jcb1 = new JCheckBox("篮球");
JCheckBox jcb1 = new JCheckBox("游戏");
JCheckBox jcb1 = new JCheckBox("睡觉");
JCheckBox jcb1 = new JCheckBox("学习");
jf.add(jcb1);
jf.add(jcb2);
jf.add(jcb3);
jf.add(jcb4);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
(3) Componente del cuadro de lista desplegable
Método de construcción
JComboBox jb = new JComboBox();
//addItem添加下拉内容
Ejemplo
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JComboBox box = new JComboBox();
box.addItem("--请选择你的学历--");
box.addItem("高中");
box.addItem("大学");
box.addItem("研究生");
jf.add(box);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
3. Barra de menú
(1) Crear barra de menú: JMenuBar
(2) Crear menú: JMenu
(3) Crear elemento de menú: JMenuItem
//菜单项依附于菜单,菜单依附于菜单栏
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("菜单1");
JMenuItem item1 = new JMenuItem("菜单项1");
JMenuItem item2 = new JMenuItem("菜单项2");
JMenuItem item3 = new JMenuItem("菜单项3");
menu.add(item1);
menu.add(item2);
menu.add(item3);
bar.add(menu);
jf.add(bar);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
4. Componente de texto
Constructor
JTextField text = new JTextField();
JTextField text = new JTextField(String text); //指定默认文字
JTextField text = new JTextField(int fieldWidth); //指定文本框长度
JTextField text = new JTextField(String text,int fieldWidth); //指定默认文字+文本框长度
Ejemplo
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JLabel label = new JLabel("账号");
JTextField text = new JTextField("请输入",20);
jf.add(lable);
jf.add(text);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
5. Componente del cuadro de contraseña
Constructor
JPasswordField pwd = new JPasswordField();
JPasswordField pwd = new JPasswordField(String str); //指定默认文字
JPasswordField pwd = new JPasswordField(int fiedWidth); //指定文本框长度
JPasswordField pwd = new JPasswordField(String str,int fiedWidth); //指定默认文字+文本框长度
Ejemplo
//setEchoChar('*') 显示回显字符,默认·
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JLabel label = new JLabel("密码:");
JPasswordField text = new JPasswordField("请输入密码",20);
jf.add(lable);
jf.add(text);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
6. Componente de campo de texto
Constructor
JTextArea area = new JTextArea();
JTextArea area = new JTextArea(String text); //指定默认文字
JTextArea area = new JTextArea(int rows,int cols); //指定行+列
Ejemplo
//setLineWrap(boolean x); 设置文本域是否自动换行
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JTextArea area = new JTextArea(12,20);
jf.add(area);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
6. Diseños de uso común
1. Diseño de flujo
Todos los componentes se descargan uno por uno como una secuencia. Después de llenar una fila, la siguiente fila se pone en cola. De forma predeterminada, cada componente se
Está dispuesto en el centro, pero también se puede ambientar.
Constructor
FlowLayout fl = new FlowLayout();
FlowLayout fl = new FlowLayout(int aligment); //设置对齐方式(默认FlowLayout.CENTER居中)
/**
* aligment取值:
* FlowLayout.LEFT = 0
* FlowLayout.CENTER = 1
* FlowLayout.RIGHT = 2
*/
Ejemplo
//一般都通过setLayout方法来设置布局,例如jf.setLayout(new FlowLayout(FlowLayout.LEFT));
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("A");
JButton jb1 = new JButton("B");
jf.add(jb);
jf.add(jb1);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2. Diseño de borde Diseño de borde
El diseño del borde es el método de gestión de diseño predeterminado. El diseño del borde divide el contenedor en Norte (BorderLayout.NORTH) y Sur.
(BorderLayout.SORTH), Este (BorderLayout.EAST), Oeste (BorderLayout.WAST), Medio
(BorderLayout.CENTER) 5 áreas.
Ejemplo
//再给JFrame容器add组件的时候,指定边界
JFrame jf = new JFrame("标题");
jf.setLayout(new BorderLayout());
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("中部");
JButton jb1 = new JButton("西部");
jf.add(jb,BorderLayout.CENTER);
jf.add(jb1,BorderLayout.WEST);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
3. Diseño de cuadrícula
El diseño de cuadrícula divide los contenedores en cuadrículas. Todos los componentes están organizados en filas y columnas, y el número de cuadrículas está determinado por el número de filas y columnas.
Ciertamente. Cada componente completará los espacios, cambiará el tamaño del contenedor y el tamaño del componente cambiará en consecuencia.
Método de construcción
GridLayout gl = new GridLayout(int rows,int columns); //指定行数+列数
GridLayout gl = new GridLayout(int rows,int columns,int horizGap,int vertGap) //指定行数+列数+水平间隔+垂直间隔
Ejemplo
JFrame jf = new JFrame("标题");
jf.setLayout(new GridLayout(2,2));
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("A");
JButton jb1 = new JButton("B");
JButton jb2 = new JButton("C");
JButton jb3 = new JButton("D");
jf.add(jb);
jf.add(jb1);
jf.add(jb2);
jf.add(jb3);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
7. Oyentes de eventos de uso común
evento | Interfaz de escucha | método | |
oyente de eventos de acción | Evento de acción | Oyente de acción | addActionListener(); eliminarActionListener(); |
oyente de eventos de enfoque | Evento de enfoque | Oyente de enfoque | addFocusListener(); eliminarFocusListener(); |
Pasos para el uso
(1) Cree un nuevo componente (como un botón)
(2) Agregue el componente al contenedor correspondiente (como JFrame)
(3) Registre un oyente para escuchar los eventos generados por la fuente del evento (como usar ActionListener para responder cuando el usuario hace clic en un botón)
(4) Defina el método para manejar el evento (como definir el método correspondiente en actionPerformed en ActionListener)
Ejemplo
JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JButton jb = new JButton("A");
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
此处重写方法,要让此按钮做什么
}
});
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
8. JTable
JTable es un componente de la tabla y debe considerarse como dos partes, el título de la tabla y el contenido de la tabla, pero el funcionamiento real de estas dos partes
es el objeto DefaultTableModel, y una vez completada la operación, el objeto JTable debe colocarse en el panel JPanel o JScrollPane, etc.
contenedor, por lo que su relación jerárquica es:
JScrollPane
JTable
Modelo de tabla predeterminado