Olá! Estou com algumas dúvidas simples de pacotes, classes e eventos. Primeiramente, explicarei o objetivo da aplicação teste abaixo:
O programa principal tem uma janela com várias opções em formas de botões, sendo que quando o usuário clicar em um botão, o objetivo seria que abrisse uma nova janela independente da primeira e que esta janela pudesse trabalhar com dados do usuário como pedir p/ entrar com um número ou apresentar alguma coisa ao usuário ou até mesmo criar mais opções. Sendo que cada uma das opções do menu principal abriria uma janela diferente da outra.
A dúvida é o seguinte: [color="red"]como faço p/ poder apresentar uma nova janela? [/color]
devo criar uma nova classe contendo os métodos e características da nova janela?
[color="red"]como faço p/ chamar essa janela no evento da classe principal?
devo criar pacotes? [/color]
como faço p/ q a importação de classes e pacotes q eu crio estejam em um local q quando usar qualquer classe q eu criar e importar uma classe do pacote, o java saiba localizá-lo? devo definir mais coisas na variável CLASSPATH?
Se puderem exemplificar um código, fico mt grato.
Segue abaixo a classe principal:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TestandoMenu extends JFrame implements ActionListener {
private JButton opcao1, opcao2, opcao3, opcao4, opcao5;
private JLabel[] label = new JLabel[5];
void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy) {
gbc.gridx = gx;
gbc.gridy = gy;
gbc.gridwidth = gw;
gbc.gridheight = gh;
gbc.weightx = wx;
gbc.weighty = wy;
}
public Insets getInsets() {
return new Insets(50,10,30,10);
}
public TestandoMenu() {
super("Teste de Menu");
setBounds(100, 100, 500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
JPanel pane = new JPanel();
pane.setLayout(gridbag);
// Rótulo do Menu Principal
buildConstraints(constraints, 1, 0, 1, 1, 10, 40);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.WEST;
JLabel labela = new JLabel("Menu Principal - Escolha uma das opções abaixo:", JLabel.LEFT);
gridbag.setConstraints(labela, constraints);
pane.add(labela);
// Opções de escolha - Botões
for (int cont = 0; cont < 5; cont++) {
buildConstraints(constraints, 0, 1 + cont, 1, 1, 2, 40);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
switch (cont) {
case 0:
opcao1 = new JButton();
gridbag.setConstraints(opcao1, constraints);
pane.add(opcao1);
opcao1.addActionListener(this);
case 1:
opcao2 = new JButton();
gridbag.setConstraints(opcao2, constraints);
pane.add(opcao2);
opcao2.addActionListener(this);
case 2:
opcao3 = new JButton();
gridbag.setConstraints(opcao3, constraints);
pane.add(opcao3);
opcao3.addActionListener(this);
case 3:
opcao4 = new JButton();
gridbag.setConstraints(opcao4, constraints);
pane.add(opcao4);
opcao4.addActionListener(this);
case 4:
opcao5 = new JButton();
gridbag.setConstraints(opcao5, constraints);
pane.add(opcao5);
opcao5.addActionListener(this);
}
}
//Texto dos botões de opçao
for (int conta = 0; conta < 5; conta++) {
buildConstraints(constraints, 1, 1 + conta, 1, 1, 20, 40);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.WEST;
switch (conta) {
case 0:
label[0] = new JLabel("Opção 1", JLabel.LEFT);
case 1:
label[1] = new JLabel("Opção 2", JLabel.LEFT);
case 2:
label[2] = new JLabel("opção 3", JLabel.LEFT);
case 3:
label[3] = new JLabel("Opção 4", JLabel.LEFT);
case 4:
label[4] = new JLabel("Opção 5", JLabel.LEFT);
}
gridbag.setConstraints(label[conta], constraints);
pane.add(label[conta]);
}
// Painel de conteúdo
setContentPane(pane);
setVisible(true);
}
//Este é o método que será chamado quando algum componente que responde ao evento for acionado
public void actionPerformed(ActionEvent e) {
if (e.getSource() == opcao1) {
//Aqui o clique na opção 1 faz com que abra uma caixa de diálogo
JOptionPane.showMessageDialog(this, "Digite um número inteiro");
}
}
public static void main(String[] arguments) {
TestandoMenu tm = new TestandoMenu();
}
}