Fundo do painel JPanel personalizado
1. Prefácio
1. O nome completo da GUI é uma interface gráfica do usuário, que é a interface gráfica do usuário. A GUI de Java é amplamente usada em nossas vidas e também é muito comum. Muitos aplicativos usam esta GUI para programar e projetar, como clicar no ícone QQ para exibir o formulário de login correspondente.
Geralmente, a interação entre programas e usuários é baseada na interface em execução do programa correspondente.
2. O JPanel Painel é uma classe de contêiner de painel em Swing. Este painel suporta o ninho, pode definir métodos de layout e definir diferentes gerentes de layout para adicionar outros controles, como botões JButton, caixas de texto JTextfield, etc. para projetar e melhorar um formulário de interface do programa.
Está longe de ser suficiente para apoiar o setbackground () como um painel de desenho. Aqui, implementamos a personalização para definir o plano de fundo da imagem para JPanel.
2. Ferramentas da plataforma
1.MyClipse
Demonstrar usando o myeclipse2014 aqui
Outras plataformas que suportam Java Awt+Swing também estão disponíveis
3. Exibição da imagem
1. Diferentes efeitos de processamento do JPanel sob a mesma forma
(1) Primeiro, crie um formulário não modificado. O efeito geral da interface JPanel padrão é o seguinte:
(2) Configuração simples de efeitos de cor de fundo:
(3) Personalizou o efeito do formulário em JPanel após o processamento:
2. Implementação de código
Personalize o processamento de fundo do JPanel, a imagem é bg.png e está no mesmo caminho que a classe de teste. Por favor, use o caminho relativo ao usar a imagem.
importar java.awt.graphics; importar javax.swing.imageicon; importar javax.swing.jframe; importar javax.swing.jpanel; classe pública Guitest {private estático jframe jframe; // declarar um formulário privado jpanel jpanel; // Declare um guitest público de Artboard () {// Método de Construção JFrame = new JFrame (); init (); } private void init () {jframe.settitle ("test"); jpanel = new jpanel () {// O código -chave é reescrever um método de tinta @Override Protected Void PaintComponent (gráficos g) {super.paintComponent (g); Imageicon img = new imageicon (guitest.class.getResource ("bg.png")); / *** bg.png é substituído por sua própria imagem* O caminho relativo usado aqui, o bg.png está no mesmo caminho que a classe de teste*, no entanto, é recomendável usar caminhos relativos para evitar o uso de caminhos absolutos*/ img.painticon (this, g, 0, 0); }}; jpanel.setOpaque (true); jframe.setBounds (200, 200, 500, 400); // Defina a posição de exibição de 200 pixels à esquerda e os 200 pixels superiores e o tamanho da tela é 500*400 jframe.add (jpanel); // Adicione a prancha de arte ao formulário jframe.setVisible (true); // defina a interface de exibição} public static void main (string [] args) {new guitest (); // instanciar o objeto}} 4. Expanda o gerente de layout
Aqui está um formulário de login simples:
Um formulário de login simples implementado com base em um plano de fundo JPanel personalizado, definindo o layout GridBaglayout, adicionando caixas de texto do botão e outros controles básicos.
(1) O código é o seguinte:
importar java.awt.graphics; importar java.awt.gridbagConstraints; importar java.awt.gridbaglayout; importar java.awt.insets; importar javax.swing.imageicon; importar javax.swing.jbutton; importar javax.swing.jframe; importar javax.swing.jlabel; importar javax.swing.jpanel; importar javax.swing.jpasswordfield; importar javax.swing.jtextfield; classe pública Guit {// Declare o formulário, painel e controle private estático jframe jframe; Privado Jlabel Jlabel, Jlabel1; Gridbaglayout de gridlayout privado; restrições privadas de gridbagconstens; Private JTextfield Jtfield1; Private JPasswordField JPfield1; Private JButton JButton1, JButton2, JButton3; private JPanel JPanel; public guit () {jframe = new jframe (); jlabel = new jlabel (); jlabel1 = new jlabel (); Jtfield1 = novo JTextfield (); jpfield1 = new jpasswordfield (); Gridbag = new GridBagLayout (); jbutton1 = new jbutton (); jbutton2 = new jbutton (); jbutton3 = new jbutton (); init (); } / ** * init () inicialize e exiba a interface * / private void init () {jframe.settitle ("login"); / *** Defina o fundo jpanel*/ jpanel = new jpanel () {@Override Protected Void PaintComponent (gráficos g) {super.paintcomponent (g); Imageicon img = new imageicon (guitest.class.getResource ("ddmbg.jpg")); img.painticon (this, g, 0, 0); }}; // Inicialize o texto para Jlabel, JButton jlabel.settext ("nome de usuário:"); jlabel1.settext ("senha:"); jbutton1.settext ("login"); jbutton2.Settext ("Exit"); jbutton3.Settext ("Register"); // Defina a posição de exibição e o tamanho da tela 500*400 jframe.setbounds (450, 240, 400, 240); // jpanel usa o gerente de layout do GridBaglayout jpanel.setOpaque (false); jpanel.setLayout (Gridbag); // Inicialize o rótulo do nome de usuário e adicione o controle às restrições da prancha de arte = getGridBagConstraints (0,0,1,1,0,0, gridbagconstraints.center, gridbagconstraints.none, novas inserções (10,0,10,0), 0,0); gridbag.setConstraints (Jlabel, restrições); jpanel.add (Jlabel); // inicialize a caixa de texto do nome de usuário e adicione o componente às restrições da prancha de arte = getGridBagConstraints (1,0,1,0,0,0, gridbagconstraints.center, gridbagconstraints.none, novas inserções (10,0,10,0), 100,0); gridbag.setConstraints (jtfield1, restrições); jpanel.add (jtfield1); // Inicialize restrições de rótulo de senha = getGridBagConstraints (0,1,1,1,0,0, GridBagconstraints.Center, GridBagConstraints.none, novas inserções (10,0,10,0), 0,0); gridbag.setConstraints (Jlabel1, restrições); jpanel.add (Jlabel1); // Inicialize as restrições da caixa de texto de senha = getGridBagConstraints (1,1,1,1,0,0, GridBagConstraints.Center, GridBagconstraints.none, novas inserções (10,0,10,0), 100,0); gridbag.setConstraints (JPField1, restrições); jpanel.add (jpfield1); // Inicialize o botão Registro e adicione o controle às restrições da prancha de arte = getGridBagConstraints (0,2,1,1,0,0, gridbagconstraints.center, gridbagconstraints.None, novas inserções (10,0,10,0), 0,0); gridbag.setConstraints (jbutton3, restrições); jpanel.add (JButton3); // inicialize as restrições do botão de login = getGridBagConstraints (1,2,1,1,0,0, gridbagconstraints.center, gridbagconstraints.none, novas inserções (10,0,10,0), 0,0); gridbag.setConstraints (JButton1, restrições); jpanel.add (JButton1); // inicialize restrições de botão de saída = getGridBagConstraints (2,2,1,1,0,0, gridbagconstraints.center, gridbagconstraints.none, novas inserções (10,0,10,0), 0,0); gridbag.setConstraints (jbutton2, restrições); jpanel.add (JButton2); // Adicione a prancha de arte para formar jframe.add (jpanel); //Form initialization is completed} private static GridBagConstraints getGridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets int ipadx, int ipady){ return new GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, âncora, preenchimento, inserções, ipadx, ipady); } public static void main (string [] args) {new guit (); jframe.setVisible (true); }}onde ddmbg é o nome da imagem
(2) O efeito é mostrado na figura:
O layout é a base e também é muito importante no design da GUI.
Para ser proficiente no uso e domínio dos três principais layouts e outros gerentes de layout, você precisa praticar sozinho.
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.