Duvida com relação entre classes [RESOLVIDO]

8 respostas
E

Duvida é simples eu acho galera. É o seguinte eu tenho duas classes, a primeira:

public class Janela extends JFrame {
    
    public Janela() {

        setTitle("Tabbed Pane");
        JTabbedPane a = new JTabbedPane();
        getContentPane().add(a);

 \Gostaria de substituir esse "jp1" pelo JPanel  pronto da classe Bacia.       
        JPanel jp1 = new JPanel();
        JPanel jp2 = new JPanel();
        JPanel jp3 = new JPanel();
        JButton jb = new JButton("Gerar Backup");
       
        jp1.add(jb);
        jp2.add(jb);
        jp3.add(jb);
   
        a.addTab("Bacias", jp1);
        a.addTab("Sub-Bacias", jp2);
        a.addTab("Estados", jp3);
                
}

    public static void main(String[] args) {
        
        Janela tp = new Janela();
        tp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        tp.setVisible(true);
        tp.setSize(300,300);
    
    }
}

e a segunda:

public class Bacia extends JPanel {
    public void Bacia() {

    JPanel jp = new JPanel();
    JButton jb = new JButton("Gerar Backup");
    String[] opcoes = {
        "Bacia 1","Bacia 2","Bacia 3",
        "Bacia 4","Bacia 5","Bacia 6",
        "Bacia 7","Bacia 8","Bacia 9"
    };
    JComboBox cb = new JComboBox(opcoes);
    
    jp.add(jb);
    jp.add(cb);

    }
}

Só gostaria de saber o que posso fazer para adicionar essa Classe “Bacia” como uma das abas jah prontas no TabbedPane, assim ficaria mais organizado.
Por exemplo colocar o JPanel dela no lugar do painel “jp1”.
Agradeço desde já e desculpa os erros tensos ae, to começando agora >< !

8 Respostas

D

Faz da seguinte forma:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class Janela extends JFrame {   
       
    public Janela() {   
  
        setTitle("Tabbed Pane");   
        JTabbedPane a = new JTabbedPane();   
        getContentPane().add(a);   
  
                 
        Bacia b1 = new Bacia(); 
        JPanel jp2 = new JPanel();   
        JPanel jp3 = new JPanel();   
        JButton jb = new JButton("Gerar Backup");   
           
        jp2.add(jb);   
        jp3.add(jb);   
     
        a.addTab("Bacias", b1);   
        a.addTab("Sub-Bacias", jp2);   
        a.addTab("Estados", jp3);   
                   
}   
  
    public static void main(String[] args) {   
           
        Janela tp = new Janela();   
        tp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
        tp.setVisible(true);   
        tp.setSize(300,300);   
       
    }   
}

Segunda classe

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;

public class Bacia extends JPanel 
{   
    public Bacia() 
    {    
    JButton jb = new JButton("Gerar Backup");   
    String[] opcoes = {   
        "Bacia 1","Bacia 2","Bacia 3",   
        "Bacia 4","Bacia 5","Bacia 6",   
        "Bacia 7","Bacia 8","Bacia 9"   
    };   
    
    JComboBox cb = new JComboBox(opcoes);   
       
    add(jb);   
    add(cb);   
  
    }   
}

Explicação, como a classe Bacia já extende a class JPanel, não é necessario criar um painel dentro da mesma
Mudei a sua Função void Bacia() para o construtor Bacia(), acho que era essa a sua intenção
Assim sendo, você pode criar a classe Bacia como se criase um JPanel normalmente

Qualquer duvida, posta ai!

E

Opaaa era isso msm cara !
Funcionou certinho aqui ^^
Brigadão msm e desculpa qualquer coisa, to começando a ver OO agora !
Abrss

D

Que isso, fica a vontade, qualquer coisa se precisar olha o msn ai

[email removido]

e gmail

[email removido]

flw

E

Aproveitando o tópico aqui xD

public class SimpleGui implements ActionListener {
    JButton button;
    
    public static void main (String[] args) {
        SimpleGui gui = new SimpleGui();
        gui.go();
    }
    
    public void go() {
        
        button = new JButton("Gerar Backup");
        button.addActionListener(this);
        
    }
    
    public void actionPerformed(ActionEvent evt) {
        Servidor serv = new Servidor();
        serv.main();
    }
}

To tentando fazer esse botão executar a classe servidor quando clicado, e não to conseguindo claro :oops:
Sei que tah errado aii no final mais nao tenho nem ideia de como ficaria.
Se alguem puder mostrar ae, obrigado desde já.

D

Exatamente o que não está conseguindo fazer?

O botão aparecer? Executar o método?

E

Okaay eu meio que consigui aquii, vi que nao precisava invocar o método main em si.
Funcionou eu executando um outro metodo da classe “Servidor”.
Tava pesquisando aqui e não entendi muito bem se é mesmo possível executar o main de outra classe ?
É possível ?
Abrss

D

É possivel mas não viável

Quando a JVM executar o Main principal vc pode invocar outros método main
mas por questões de controle, prefiro ter apenas um main na aplicação

E

Intendi brother !
Realmente invocar esse main seria desnecessário !
Brigadão di nv xD
Abrss

Criado 9 de fevereiro de 2011
Ultima resposta 10 de fev. de 2011
Respostas 8
Participantes 2