Erklärung zum Lernen der grafischen Java-Schnittstelle GUI (Swing).

Links zum gleichen Kurs:

https://www.bilibili.com/video/BV1HJ411q7jW?p=3&vd_source=a55a729a8abbc793a24a2504a9067a76

1: Richten Sie das erste Fenster ein

package ja615;

import javax.swing.JFrame;
public class WidonwRun {
    
    
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		FirstWindow first=new FirstWindow();
	}
}

class FirstWindow extends JFrame{
    
    
	public FirstWindow() {
    
    
		init();
	}
	public void init() {
    
    
		setTitle("first window");
		setSize(400,200);
		setLocation(20,20);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
}

2 Design und Implementierung des Login-Formulars

package ja615;

import javax.swing.*;
public class WidonwRun {
    
    
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		LoginFrame first=new LoginFrame();
		
	}
}

class LoginFrame extends JFrame{
    
    
	private JTextField txtUser;//用户名
	private JPasswordField txtPwd;
	private JLabel lblUser, lblPwd;
	private JButton btnOk,btnExit;
	 LoginFrame() {
    
    
		init();
	}
	public void init() {
    
    
		lblUser =new JLabel("用户名");  //标签
		lblPwd =new JLabel("密码");
		lblUser.setBounds(20, 20, 60, 20);  //设置控件的位置以及大小
		lblPwd.setBounds(20, 50, 60, 20);
		setLayout(null);   //设置布局管理为null
		txtUser=new JTextField(10);  //  输入文本框
		txtPwd=new JPasswordField(10);
		txtUser.setBounds(80, 20, 100, 20);   //设置文本框   x,y,长.高
		txtPwd.setBounds(80, 50, 100, 20);
		
		JButton btnOK =new JButton("确定");
		JButton btnExit= new JButton("取消");
		btnOK.setBounds(60, 100, 60, 20);
		btnExit.setBounds(125, 100, 60, 20);
		
		add(lblUser);
		add(lblPwd);
		add(txtUser);
		add(txtPwd);
		add(btnOK);
		add(btnExit);
		setBounds(1,1,250,200);
		setTitle("登录窗体");
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

3: Einführung in gängige Kontrollklassen

Erstellen Sie ein Objekt mit der Klasse, die dem Steuerelement entspricht.
Zum Beispiel: Jlabel (Beschriftung) JButtton (Schaltfläche) JTextFiled (Text)

Gemeinsame Merkmale von Steuerelementen: Alle Steuerelemente erben die Jcomponent-Klasse.
Gemeinsame Methoden:
1:setText();
2:getText();
3:setbounds(x,y,width,length);

package demo;

import java.awt.Color;
import javax.swing.*;

public class Main {
    
    

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		LoginFrame login=new LoginFrame();
	}

}

class LoginFrame extends JFrame{
    
    
	private JTextField txtUser;//用户名
	private JPasswordField txtPwd;
	private JLabel lblUser,lblPwd;
	private JButton btnOK,btnExit;
	private JRadioButton rb1,rb2;  //声明我的单选钮对象
	public LoginFrame() {
    
    
		init();
	}
	public void init() {
    
    
		lblUser=new JLabel("用户名");  //标签
		lblPwd =new JLabel("密码");
		lblUser.setBounds(20, 20, 60, 20);
		lblPwd.setBounds(20, 50, 60, 20);
		setLayout(null);
		txtUser=new JTextField(10);
		txtPwd=new JPasswordField(10);
		txtUser.setBounds(80,20,100,20);
		txtPwd.setBounds(80,50,100,20);
		
		rb1=new JRadioButton("管理员",false);  //创建单选按钮对象
		rb1.setBounds(20, 70, 80, 20);
		rb2=new JRadioButton("普通会员",false);
		rb2.setBounds(80, 70, 80, 20);
		btnOK =new JButton("确定");
		
		btnExit=new JButton("取消");
		btnOK.setBounds(60, 100, 60, 20);
		btnExit.setBounds(125, 100, 60, 20);
		
		add(lblUser);
		add(lblPwd);
		add(txtUser);
		add(txtPwd);
		add(rb1);
		add(rb2);
		add(btnExit);
		add(btnOK);
		setBounds(1,1,250,200);
		setTitle("登录窗体");
		setVisible(true);
		
	}
}

4:Ereignishandler

wer Ereignisse generiert

– Quellobjekt

Bestimmen Sie, wer den Vorfall bearbeiten wird

– Listener
– Implementieren der Ereignisverarbeitungs-Abhörschnittstelle
– Vollständige Ereignisverarbeitungsmethode

Das Quellobjekt fügt ein Listener-Objekt für das Ereignis hinzu

package demo;

import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;

public class Main {
    
    

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		LoginFrameWithAction login=new LoginFrameWithAction();
	}

}

class LoginFrameWithAction extends JFrame implements ActionListener{
    
    
	private JTextField txtUser;//用户名
	private JPasswordField txtPwd;
	private JLabel lblUser,lblPwd;
	private JButton btnOK,btnExit;
	private JRadioButton rb1,rb2;  //声明我的单选钮对象
	public LoginFrameWithAction() {
    
    
		init();
	}
	public void init() {
    
    
		lblUser=new JLabel("用户名");  //标签
		lblPwd =new JLabel("密码");
		lblUser.setBounds(20, 20, 60, 20);
		lblPwd.setBounds(20, 50, 60, 20);
		setLayout(null);
		txtUser=new JTextField(10);
		txtPwd=new JPasswordField(10);
		txtUser.setBounds(80,20,100,20);
		txtPwd.setBounds(80,50,100,20);
		
		rb1=new JRadioButton("管理员",false);  //创建单选按钮对象
		rb1.setBounds(20, 70, 80, 20);
		rb2=new JRadioButton("普通会员",false);
		rb2.setBounds(80, 70, 80, 20);
		btnOK =new JButton("确定");
		//给按钮添加事件监听器对象
		btnOK.addActionListener(new ActionListener() {
    
    
			
			@Override
			public void	actionPerformed(ActionEvent arg0) {
    
    
				String re="";
				if(txtUser.getText().equals("abc")&&txtPwd.getText().equals("123456"))
					re="登录成功";
				else
					re="用户名密码错误";
				JOptionPane.showMessageDialog(LoginFrameWithAction.this,re);
			}
		});  //匿名类实现ActionListener接口
		
		
		
		btnExit=new JButton("取消");
		btnOK.setBounds(60, 100, 60, 20);
		btnExit.setBounds(125, 100, 60, 20);
		btnExit.addActionListener(this);
		
		add(lblUser);
		add(lblPwd);
		add(txtUser);
		add(txtPwd);
		add(rb1);
		add(rb2);
		add(btnExit);
		add(btnOK);
		setBounds(1,1,250,200);
		setTitle("登录窗体");
		setVisible(true);
	}
	
	public void actionPerformed(ActionEvent e) {
    
    
        String re= "美羊羊,大傻逼";	
		JOptionPane.showMessageDialog(LoginFrameWithAction.this,re);
		System.exit(0); 
	}
}

4: Containerdefinition

Steuerelemente, die andere Steuerelemente speichern

– Formularfeld

Steuerelemente können zu Containern hinzugefügt werden

– Methode hinzufügen

Container können auch zu Containern hinzugefügt werden

– Methode hinzufügen

Wirkung

– Gruppenmanagementkontrollen

javax.swing-Paket

Gemeinsame Container

JFrame

1. Erweitert die java.awt.Frame-Klasse
2: Wird zum Erstellen von Fenstern in Swing-Programmen verwendet.
3. Enthält Rahmen, Titel und Schaltflächen zum Schließen und Ikonifizieren

JPanel

1. Zwischencontainer
2: Gruppieren Sie kleinere, leichte Container.
3. Ähnlich wie Inhaltsbereiche sind Panels standardmäßig undurchsichtig

JScrollPane

1. Es gibt Bildlaufleisten für die Bildlaufverwaltung

Guess you like

Origin blog.csdn.net/X131644/article/details/125418567