Este artigo compartilha o código específico para o Java para implementar uma interface de login QQ simples para sua referência. O conteúdo específico é o seguinte
Java não é um ponto forte na interface gráfica, mas não é impossível fazê -lo. Seu código aberto é muito bom!
O código de implementação é o seguinte (se você deseja implementar uma interface perfeita, pode precisar de mais suporte de codificação):
pacote com.ts.x.swing; importar java.awt.color; importar java.awt.container; importar java.awt.cursor; importar java.awt.font; importar java.awt.image; importar java.awt.event.actionEvent; importar java.awt.event.actionListener; importar javax.swing.imageicon; importar javax.swing.jbutton; importar javax.swing.jcheckbox; importar javax.swing.jcombobox; importar javax.swing.jcombobox; importar javax.swing.jframe; importar javax.swing.jlabel; importar javax.swing.JOptionPane; importar javax.swing.jpasswordfield; importar javax.swing.jrootpane; importar javax.swing.jtextfield; classe pública QQ estende JFRame {private estático final serialversionuid = -6788045638380819221L; // nome de usuário Private JTextfield Ulname; // senha privado jpasswordfield upasswd; // Small Container Private Jlabel J1; Private Jlabel J2; Private Jlabel J3; Private Jlabel J4; // Button Small Private JButton B1; Private JButton B2; JButton privado B3; // Caixa de seleção Private JcheckBox C1; private JCHECKBOX C2; // Caixa de listagem Private JCombobox <String> CB1; /*** Inicialize a página de login qq**/public qq () {// Defina o título da janela de login this.setTitle ("QQ Login"); // Remova a decoração da janela (borda) // this.setUndecorated (true); // Use o estilo decorativo de janela especificado this.GeROOTPANE (). SetWindowDecorationStyle (jrootpane.none); // inicialize o componente do formulário init (); this.setDefaultCloseoperation (jframe.exit_on_close); // defina o layout como posicionamento absoluto. this.setbounds (0, 0, 355, 265); // Defina a imagem do ícone do formulário img0 = new imageicon ("d: /logo.png"). GetImage (); this.SeticOnImage (IMG0); // O tamanho do formulário não pode ser alterado isso.SetResizable (false); // o centro exibe this.setLocationRelativeTo (null); // O formulário exibe this.setVisible (true); } /*** Inicialização do componente do formulário** /public void init () {// Crie um contêiner, o tamanho da imagem e o terceiro e quarto parâmetros de setbounds devem ser basicamente os mesmos (você precisa calcular e cortá -lo) contêiner) contêiner = this.getContentPane (); j1 = novo Jlabel (); // Defina a imagem colorida de fundo img1 = new imageicon ("d: /bgimg.png"). GetImage (); J1.Seticon (New Imageicon (IMG1)); J1.setbounds (0, 0, 355, 265); // configuração de avatar qq j2 = new jlabel (); Imagem img2 = new imageicon ("d: /hdimg.png"). GetImage (); J2.Seticon (novo imageicon (IMG2)); J2.setbounds (40, 95, 50, 53); // caixa de entrada de nome de usuário ulname = new jtextfield (); Ulname.setBounds (100, 100, 150, 20); // Conta de registro J3 = new Jlabel ("Conta de registro"); J3.Setbounds (260, 100, 70, 20); // caixa de entrada de senha ULPasswd = new jpasswordfield (); ULPASSWD.setBounds (100, 130, 150, 20); // recuperar senha j4 = new jlabel ("recuperar senha"); J4.Setbounds (260, 130, 70, 20); // Lembre -se de senha c1 = new jCheckBox ("Lembre -se de senha"); C1.setbounds (105, 155, 80, 15); // login automático C2 = novo JCheckBox ("Login automático"); C2.Setbounds (185, 155, 80, 15); // seleção de status de login do usuário cb1 = new jcombobox <string> (); cb1.additem ("online"); cb1.additem ("invisível"); CB1.Additem ("Leave"); CB1.setbounds (40, 150, 55, 20); // botão de login b1 = novo jbutton ("login"); // Defina a fonte e o ponteiro da cor e a mão B1.setFont (nova fonte ("宋体", font.plain, 12)); B1.setforeground (color.red); B1.setCursor (Cursor.getPredefinedCursor (cursor.hand_cursor)); B1.setbounds (280, 200, 65, 20); // Adicione B1.AddactionListener (new ActionListener () {@Override public void ActionPerformed (ActionEvent E) {String cmd = e.getActionCommand (); if ("Login" .equals (CMD)) {string username = Ulname.getText (); string (string); if (nome de usuário.equals ("tskk") && userpassword.equals ("123456")) {joptionpane.showconfirmdialog (null, "login com sucesso"); // Conta múltipla B2 = novo JButton ("Conta Múltipla"); B2.Setbounds (5, 200, 75, 20); // setB3 = new jbutton ("set"); B3.Setbounds (100, 200, 65, 20); // Todos os componentes são carregados com o contêiner j1.add (j2); J1.Add (J3); J1.Add (J4); J1.Add (C1); J1.Add (C2); J1.Add (CB1); J1.Add (B1); J1.Add (B2); J1.Add (B3); container.add (J1); container.add (ulname); container.add (ULPasswd); } public static void main (string [] args) {new qq (); }}A interface de resultado em execução é:
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.