Criar componentes swing?

9 respostas
P

como criar meus proprios componentes swing?

Fiz um Painel que estende de JPanel, mas quando tento colocalo na paleta diz que ele não é um componente javaBeans!

Como resolvo isso?

9 Respostas

D

Posso dar uma olhada no seu código para tentar achar o problema, porque com texto apenas é difícil.

P
public class Painel extends javax.swing.JPanel {

ImageIcon imagen;

/** Creates new form Painel */

public Painel(String tipo) {

initComponents();

imagen = new ImageIcon(tipo);

setSize(imagen.getIconWidth(), imagen.getIconHeight());

}

public void setImage(String imagen) {

this.imagen = new ImageIcon(getClass().getResource(imagen));

repaint();

}

<a class="mention" href="/u/override">@Override</a>

protected void paintComponent(Graphics g) {

Dimension d = getSize();

g.drawImage(imagen.getImage(), 0, 0, d.width, d.height, this);

setOpaque(false);

super.paintComponent(g);

}

}

Tai cara!
Vlw!

D
public class Painel extends javax.swing.JPanel {
ImageIcon imagen;
/** Creates new form Painel */
public Painel(String tipo) {
initComponents();
imagen = new ImageIcon(tipo);
setSize(imagen.getIconWidth(), imagen.getIconHeight());
}
public void setImage(String imagen) {
this.imagen = new ImageIcon(getClass().getResource(imagen));
repaint();
}
@Override
protected void paintComponent(Graphics g) {
Dimension d = getSize();
g.drawImage(imagen.getImage(), 0, 0, d.width, d.height, this);
setOpaque(false);
super.paintComponent(g);
}
}

Que layout quer usar?

null, border, o que?

E outra, cade os imports?

import java.awt.Dimension; //
import java.awt.Graphics;
import javax.swing.*; // toda a bíblioteca swing
package panel;

// cade os imports
import java.awt.Dimension; //
import java.awt.Graphics;
import javax.swing.*; // toda a bíblioteca swing

public class Painel extends javax.swing.JPanel {
ImageIcon imagen;
/** Creates new form Painel */
public Painel(String tipo) {
initComponents(); // cade este método
imagen = new ImageIcon(tipo); 
setSize(imagen.getIconWidth(), imagen.getIconHeight());
}
public void setImage(String imagen) {
this.imagen = new ImageIcon(getClass().getResource(imagen));
repaint();
}
@Override
protected void paintComponent(Graphics g) { //import java.awt.Graphics;  necessário
Dimension d = getSize();//import java.awt.Dimension; necessário
g.drawImage(imagen.getImage(), 0, 0, d.width, d.height, this);
setOpaque(false);
super.paintComponent(g);
}
}

REfiz teu código, mais como não entendi o que quer com "initComponents()", não posso mais nada.

Mais de uma olhada na calculadora abaixo, eu fiz estruturada e em um método, só para ter uma noçãozinha de como é phoda interface a mão e em C++ é bem pior.

package calculator_swing;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
/**
 *
 * @author 1193899
 */
public class Main {
public static JFrame frame; // frame
public static JTextField visu; // visor
public static JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9,bt0; //Botões para a calculadora;
public static JButton btsoma, btdiv, btmul, btsub, btlimp, btvirg,btneg; // botoes de ações
public static JButton igual,posNeg,virgula;
        static char op;
        static String temp;
        static double num1,num2,res,temp2;
 
    public static void main(String[] args) {

       frame = new JFrame();
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setLayout(null);
       frame.setTitle("CALCULADORA");
       frame.setSize(275,400);
    
    
       visu=new JTextField();
       visu.setBounds(20,20,230,25);
       visu.setVisible(true);
       frame.add(visu);

       btsoma=new JButton();
       btsoma.setText("+");
       btsoma.setBounds(200,60,50,50);
       btsoma.setVisible(true);
       btsoma.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                  temp=visu.getText();
                  num1=Double.parseDouble(temp);
                  op='+';
                  visu.setText("");
             }
                
           });
       frame.add(btsoma);

       btsub=new JButton();
       btsub.setText("-");
       btsub.setBounds(200,120,50,50);
       btsub.setVisible(true);
       frame.add(btsub);
       btsub.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                   temp=visu.getText();
                num1=Double.parseDouble(temp);
                  op='-';                
                  visu.setText("");
             }
                
           });

       btmul=new JButton();
       btmul.setText("*");
       btmul.setBounds(200,180,50,50);
       btmul.setVisible(true);
       frame.add(btmul);
       btmul.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                     temp=visu.getText();
                  num1=Double.parseDouble(temp);
                  op='*';              
                  visu.setText("");
             }
                
           });

       btdiv=new JButton();
       btdiv.setText("/");
       btdiv.setBounds(200,240,50,50);
       btdiv.setVisible(true);
       frame.add(btdiv);
       btdiv.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                       temp=visu.getText();
                  num1=Double.parseDouble(temp);
                  op='/';   
                  visu.setText("");
                 
             }
                
           });
       
       
       btlimp=new JButton();
       btlimp.setText("C");
       btlimp.setBounds(20,60,170,50);
       btlimp.setVisible(true);
       frame.add(btlimp);
       btlimp.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
             
         temp="";
         num1=0;
         num2=0;
         res=0;
         temp2=0;
            visu.setText("");
                 
             }
                
           });

       bt1=new JButton();
       bt1.setText("1");
       bt1.setBounds(20,240,50,50);
       bt1.setVisible(true);
        bt1.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
               temp=visu.getText();
               temp=temp+"1";
               visu.setText(temp);
                 
             }
                
           });  
       frame.add(bt1);

       bt2=new JButton();
       bt2.setText("2");
       bt2.setBounds(80,240,50,50);
       bt2.setVisible(true);
       frame.add(bt2);
       bt2.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                temp=visu.getText();
               temp=temp+"2";
               visu.setText(temp);                
                 
             }
                
           });

       bt3=new JButton();
       bt3.setText("3");
       bt3.setBounds(140,240,50,50);
       bt3.setVisible(true);
       frame.add(bt3);
       bt3.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
               temp=visu.getText();
               temp=temp+"3";
               visu.setText(temp);                
                 
             }
                
           });

       bt4=new JButton();
       bt4.setText("4");
       bt4.setBounds(20,180,50,50);
       bt4.setVisible(true);
       frame.add(bt4);
       bt4.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                temp=visu.getText();
               temp=temp+"4";
               visu.setText(temp);                
                 
             }
                
           });

       bt5=new JButton();
       bt5.setText("5");
       bt5.setBounds(80,180,50,50);
       bt5.setVisible(true);
       frame.add(bt5);
       bt5.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                 temp=visu.getText();
               temp=temp+"5";
               visu.setText(temp);               
                 
             }
                
           });

       bt6=new JButton();
       bt6.setText("6");
       bt6.setBounds(140,180,50,50);
       bt6.setVisible(true);
       frame.add(bt6);
       bt6.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                temp=visu.getText();
               temp=temp+"6";
               visu.setText(temp);                
                 
             }
                
           });

       bt7=new JButton();
       bt7.setText("7");
       bt7.setBounds(20,120,50,50);
       bt7.setVisible(true);
      frame.add(bt7);
      bt7.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                temp=visu.getText();
               temp=temp+"7";
               visu.setText(temp);                
                 
             }
                
           });


       bt8=new JButton();
       bt8.setText("8");
       bt8.setBounds(80,120,50,50);
       bt8.setVisible(true);
      frame.add(bt8);
      bt8.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                  temp=visu.getText();
               temp=temp+"8";
               visu.setText(temp);              
                 
             }
                
           });

       bt9=new JButton();
       bt9.setText("9");
       bt9.setBounds(140,120,50,50);
       bt9.setVisible(true);
      frame.add(bt9);
      bt9.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                    temp=visu.getText();
               temp=temp+"9";
               visu.setText(temp);            
                 
             }
                
           });

       bt0=new JButton();
       bt0.setText("0");
       bt0.setBounds(20,300,50,50);
       bt0.setVisible(true);
      frame.add(bt0);
      bt0.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                    temp=visu.getText();
               temp=temp+"0";
               visu.setText(temp);            
                 
             }
                
           });

       virgula=new JButton();
       virgula.setText(",");
       virgula.setBounds(80,300,50,50);
       virgula.setVisible(true);
      frame.add(virgula);
      virgula.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                      temp=visu.getText();
               temp=temp+".";
               visu.setText(temp);                 
                 
             }
                
           });

       igual=new JButton();
       igual.setText("=");
       igual.setBounds(140,300,50,50);
       igual.setVisible(true);
      frame.add(igual);
      igual.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
               temp=visu.getText();
            num2=Double.parseDouble(temp);
                   switch(op){
           case '+':
                   res=num1+num2;
                   break;
            case '-':
                   res=num1-num2;
                   break;
            case '/':
                   res=num1/num2;
                   break;
              case '*':
                   res=num1*num2;
                   break;
                 }
                   visu.setText(""+res);
                 
             }
                
           });

       posNeg=new JButton();
       posNeg.setText("+ -");
       posNeg.setBounds(200,300,50,50);
       posNeg.setVisible(true);
         frame.add(posNeg);  
       posNeg.addActionListener((ActionListener) new ActionListener() {  
             public void actionPerformed(ActionEvent evt) {  
                 temp=visu.getText();
                 temp2=Double.parseDouble(temp);
                 temp2=temp2*-1;
                 visu.setText(""+temp2);
                 
             }
                
           });
         
           
      
       frame.setVisible(true);

   
     
    }
       
}

Isto dai com o GUI bluider do eclipse ou netBeans, eu faço em pouquissimo tempo, mais procure usar GUI BLUIDER.

P

Cara esse codigo ta funcionando!!!

O problema é que pra usa ele eu tenho que mexe la no codigo fonte de um JPanel qualquer que eu criei! Tipo:

meuPainel = new Panel(“caminho da imagen”);

A minha duvida é se eu posso colocalo dentro da paleta do netBeans pra usalo mais facilmente.
Nunca fiz isso em java, fiz em C# e la praticamente era so extende a classe de eu componente.
Se vc tiver um exemplo de como fazer isso me passa ai!

P

Em Java você tem que criar uma classe BeanInfo. No NetBeans clique com botão direito do mouse sobre a sua classe Java e selecione o menu “Editor BeanInfo”, depois compile seu projeto,logo em seguida adicione seu componente a paleta.

G

Olá,

Eu não entendo nada de criação de componentes Swing, mas tem um ponto que seria interessante chamar a atenção: a IDE não deixa colocar na paleta dizendo que não é um componente Javabeans. E realmente não é, pois um javabeans precisa ter um construtor sem parâmetros.

P


Olá,

Eu não entendo nada de criação de componentes Swing, mas tem um ponto que seria interessante chamar a atenção: a IDE não deixa colocar na paleta dizendo que não é um componente Javabeans. E realmente não é, pois um javabeans precisa ter um construtor sem parâmetros.

Sim para criar componentes JavaBeans você deve seguir algumas regras e uma delas é criar um construtor sem parâmetros. Mas para adicionar na paleta do Netbeans você deve seguir as orientações que escrevi no post anterior.

P

O componente ta na paleta, mas agora arrasto ele pra tela e ele não aparece!
To usando ele via codigo!

P

Verifique no Inspetor de componentes do seu formulário se ele esta aparacendo. Talvez quando você esta adicionando ele deve estar sendo inserido em um tamanho muito pequeno. Da uma olhada no seu frame e também no seu código se ele foi inserido também.

Criado 12 de setembro de 2010
Ultima resposta 13 de set. de 2010
Respostas 9
Participantes 4