As janelas de login geralmente são muito comuns, então vamos escrever um!
PS: Muitas importações são duplicadas porque as escrevi em várias categorias e devem ser importadas separadamente.
// simular a janela de login QQ Importar java.awt.*; Importar java.io.*; Importar java.awt.event.*; Importar javax.swing. Privado Jlabel Pwdla; private jlabel vercodela; // Código de verificação privado jtextfield usertxt; Private JPasswordField pwdtxt; Private JTextfield Vercodetxt; // Código de verificação Private JButton Surebt; Private JButton Quitbt; Mypanel privado MP; // Método de construção public qqgui () {init (); } public void init () {quadro quadro = new Frame ("QQ Login"); // Crie o objeto de controle (porque o acima é declarado e não fornece o espaço real) // User Text Userla = new Jlabel (); userla.settext ("Nome do usuário:"); userla.setsize (60, 50); userla.setLocation (100, 80); // texto de senha pwdla = new jlabel (); pwdla.settext ("senha:"); pwdla.setsize (50, 50); pwdla.setLocation (100, 120); // caixa de entrada do usuário usertxt = new jtextfield (); Usertxt.SetSize (100, 20); //This.setsize(width, altura) usertxt.setLocation (170, 95); // caixa de entrada de senha pwdtxt = new jpasswordfield (); pwdtxt.setsize (100, 20); pwdtxt.setLocation (170, 135); // Confirme o botão Surebt = new JButton ("Login"); Surebt.SetSize (60, 25); Surebt.setLocation (135, 260); // Botão de saída QuitBt = new JButton ("Exit"); Quitbt.SetSize (60, 25); quitbt.setLocation (240, 260); // Código de verificação Texto vercodela = new Jlabel (); Vercodela.settext ("Código de verificação:"); Vercodela.SetSize (60, 50); vercodela.setLocation (100, 165); // Código de verificação Caixa de texto vercodetxt = new JTextfield (); Vercodetxt.SetSize (100, 20); vercodetxt.setLocation (170, 180); // Código de verificação MP = new MyPanel (); MP.SetSize (100, 30); MP.setLocation (280, 175); // Caixa de seleção de métodos de login jcombobox xlk = new jCombobox (); xlk.setsize (60, 20); xlk.setLocation (250, 220); xlk.additem ("online"); xlk.additem ("invisível"); xlk.additem ("Leave"); this.setLayout (nulo); this.SetSize (500, 400); this.add (userla); this.add (pwdla); this.add (usertxt); this.add (SureBt); this.add (Quitbt); this.add (vercodela); this.add (vercodetxt); this.add (MP); this.add (xlk); Surebt.addactionListener (isto); quitbt.addactionListener (isto); this.setVisible (true); } // Manuseio de eventos específicos public void ActionPerformed (ActionEvent e) {// Obtenha a fonte de evento JButton bt = (jbutton) e.getSource (); // obtenha o texto exibido na string de botão str = bt.getText (); if (str.equals ("login")) {if (! checkiLul ()) {// Obtenha o nome de usuário inserido pelo usuário string user = usertxt.getText (). TRIM (); // obtenha a senha inserida pela sequência do usuário pwd = pwdtxt.getText (). TRIM (); if (checkUserAndpwd (usuário, PWD)) {// Ocultar a janela de login atual this.setVisible (false); // Verifique se uma janela principal é criada com sucesso de mainframe quadro = new mainframe (); } else {// Se estiver errado, uma caixa de exibição aparecerá JoptionPane Pane = new JoptionPane ("erro de usuário ou senha"); Diálogo jdialog = pane.creatialog (isto, "aviso"); dialog.show (); }}} else {// Ligue para uma das classes do sistema para sair do sistema.Exit (0); }} private boolean checkIll () {sinalizador booleano = false; if (usertxt.getText (). TRIM (). Equals (")) {flag = true;} else {if (pwdtxt.getText (). TRIM (). Equals (")) {flag = true; }} retornar sinalizador; } private boolean checkUserAndpwd (usuário da string, string pwd) {resultado booleano = false; tente {fileReader arquivo = new fileReader ("d: // workspaces // myeclipse 8.5 // testgui.txt"); BufferErader BRE = new BufferredReader (arquivo); String str = bre.readline (); while (str! = null) {string [] strs = str.split (","); if (strs [0] .equals (usuário)) {if (strs [1] .equals (pwd)) resultado = true; } str = bre.readline (); } file.close (); } catch (Exceção ex) {System.out.print (""); } resultado de retorno; }} // classe de mainframe import javax.swing.*; Classe pública mainframe estende JFrame {public mainframe () {this.setsize (300, 300); this.setVisible (true); }} // Geração de código de verificação Importar java.awt.*; Importar java.util.*; Classe pública mypanel estende painel {public void pint (gráficos g) {int alting = 50; int width = 90; // Código de verificação Caixa de fundo cor G.SetColor (color.light_gray); // preencha o código de verificação G.FillRect (0, 0, largura, altura); g.setColor (color.black); G.Drawrect (0, 0, largura-1, altura-1); Aleatório r = novo aleatório (); // Defina o ponto de interferência para (int i = 0; i <100; i ++) {int x = r.nextint (largura) -1; int y = r.nextint (altura) -1; G.Drawoval (X, Y, 2, 2); } g.setFont (New Font ("Bold", Font.Bold, 20)); // Defina a fonte do código de verificação e o tamanho G.setColor (color.red); // Defina o código de verificação da fonte da fonte // Gere um código de verificação aleatório char [] tmp = ("0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrststwxyz"). ToCharArray (); Stringbuilder sb = new stringbuilder (); for (int i = 0; i <4; i ++) {int pos = r.nextint (tmp.length); char c = tmp [pos]; sb.append (c + ""); } g.drawstring (sb.toString (), 10, 15); // Código de verificação de gravação}} // Implementação da caixa suspensa importar java.awt. // jpanel painel = new jpanel (); // cria um painel JPanel ComboBox = new JCOMBOBOX (); ComboBox.additem ("Online"); ComboBox.additem ("invisível"); ComboBox.additem ("Leave"); this.Add (ComboBox); //this.add(Panel); this.SetSize (200, 100); this.setDefaultCloseoperation (jframe.exit_on_close); this.setVisible (true); }} // Teste a classe pública Testqqgui {/** * @param args */public static void main (string [] args) {// TODO Método Auto-Generado Stub qqgui Frame = novo qqgui (); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.