NullPointerExceptiob

13 respostas
G

Boa Tarde!

Sou iniciante ainda em Java e está dando um erro no meu programa que não consigo solucionar, teria como alguem me ajudar, pois quando eu compilo não da nada  quando eu mando executar que acusa o erro:" Exception in thread “main” java.lang.NullPointerException at escola.<init><escola.java:32>

at escola.main(escola.java:15)

Segue abaixo o código da interface:

[i]

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.*;
public class escola extends JFrame implements ActionListener, ItemListener
{

JComboBox combo;

JLabel L1,L2,L3;

JTextField T1;

JRadioButton radio1,radio2,radio3,radio4,radio5;

ButtonGroup radiogroup, radiogroup1;

JPanel P1;

public static void main(String args[])

{

JFrame Janela = new escola();

Janela.show();

WindowListener x = new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

};

Janela.addWindowListener(x);

}

escola()

{

setTitle("Escolaa ");

getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));

P1.setLayout(new GridLayout(2,3));

P1.setLayout(new FlowLayout(FlowLayout.CENTER));

P1.setBackground(new Color(200,200,200));

P1 = new JPanel();

setSize(350,100);

L1 = new JLabel(Tipo);

L1.setForeground(Color.blue);

L2 = new JLabel(Pagamento);

L2.setForeground(Color.blue);

L3 = new JLabel(Mensalidade);

L3.setForeground(Color.blue);

radio1 = new JRadioButton(Técnico);

radio2 = new JRadioButton(Ensino Médio);

radio3 = new JRadioButton(Ensino Médio Técnico);

radio1.setMnemonic(KeyEvent.VK_1);

radio2.setMnemonic(KeyEvent.VK_2);

radio3.setMnemonic(KeyEvent.VK_3);

radiogroup = new ButtonGroup();

radiogroup.add(radio1);

radiogroup.add(radio2);

radiogroup.add(radio3);

radio1.addItemListener(this);

radio2.addItemListener(this);

radio3.addItemListener(this);

radio4 = new JRadioButton(A vista);

radio5 = new JRadioButton(Parcelado);

radio4.setMnemonic(KeyEvent.VK_4);

radio5.setMnemonic(KeyEvent.VK_5);

radiogroup1 = new ButtonGroup();

radio4.addItemListener(this);

radio5.addItemListener(this);	

radiogroup1.add(radio4);

radiogroup1.add(radio5);

String[] tipo = {Cursos,Informática,Meio Ambiente,Administração,Mecatronica};

combo = new JComboBox(tipo);

combo.addItemListener(this);

getContentPane().add(P1);

T1 = new JTextField();

P1.add(combo);

P1.add(L1);		

P1.add(radio1);		

P1.add(radio2);		

P1.add(radio3);

P1.add(L2);		

P1.add(radio4);		

P1.add(radio5);		

P1.add(L3);		

P1.add(T1);
}

public void actionPerformed(ActionEvent e)

{
}

public void itemStateChanged(ItemEvent e)
{

}

}[/i]

13 Respostas

luiz.portnoy

Você não está iniciando o Panel primeiro.

Faça assim:

P1 = new JPanel(); // inicia primeiro o panel

P1.setLayout(new GridLayout(2,3));
P1.setLayout(new FlowLayout(FlowLayout.CENTER));
P1.setBackground(new Color(200,200,200));
F

Da dando erro de nulo nessa linha…

P1.setLayout(new GridLayout(2, 3));

inicializa o jPanel

JPanel P1 = new JPanel();

G

Obrigada!!! :slight_smile:

E como eu faço para que um TextField tenha a função de Label, por exemplo só de aparecer a informação e não dê para digitar nada nele?

luiz.portnoy
T1.setEditable(false);

Mas adicione o texto via codigo.

T1.setText("lalala");
G

Obrigada de novo…

agora acho que a ultima duvida de sintaxe
if(e.getSource()== C2 && C1) o que está errado? aqui no compilador diz que não aceita “&&”

luiz.portnoy

&& é um sinal de comparação. Você precisa comparar expressoes que resultem um valor Booleano (true ou false).

Dessa forma que esta fazendo voce esta comparando um boolean com um objeto.

Não sei qual é o caso mas tenta

if(e.getSource() == C2 && e.getSource() == C1)
L

é necessário fazer uma comparação para a segunda clausula ou que a variável seja booleana

G
if(e.getSource()== C1 && e.getSource() == C2)
{
if(e.getStateChange()==ItemEvent.SELECTED) 
T1.setText(" X Bacon "+combo.getSelectedItem());

só que não dá para aparecer os dois ao mesmo tempo

luiz.portnoy

Não entendi a duvida agora, explica melhor… :lol:

G

eu tenho que selecionar 2 checkbox e mostrar no textfield o tipo do lanche… por exemplo no caso acima… tenho que apertar a C1 e C2 para que apareça no TextField o conteúdo d C1, C2 + o conteúdo escolhido na combo. Mas não consigo fazer aparecer o conteúdo das 2 Check Box ou é uma ou outra.

luiz.portnoy

Eu acho q é porque você ta verificando o valor da mudança de item.
Para verificar seo checkbox ta selecionado tem a propriedade getSelected();

ai, voce pode comparar se os dois estão selecionados + ou - assim:

if (check1.getSelected() && check2.getSelected())

Acho que é por ai o caminho e me desculpe se não estou te entendendo bem…

G

ahhh não deeu =/
mas obrigada mesmo assim^^

ViniGodoy

Dica. Quando for postar códigos, use a tag code:

Seu código aqui

Isso fará com que seu código se mantenha colorido e formatado.

Criado 27 de maio de 2010
Ultima resposta 27 de mai. de 2010
Respostas 13
Participantes 5