Quando clica no botão [gerar Folha de Pagamento], A janela simplesmente aparece em branco…
Dismanchei, refiz e me enrolei bastante também e nada…
Tenho que entregar esse pequeno projeto da faculdade e a dias não consigo nem um resultado…
Podem me ajudar???
Eis o programa:
public class Funcionario
{
private String nome;
private int identificacao, horas, horasExtras;
private double valorHora=0;
public Funcionario(String nF, int idF, int hF)
{
nome = nF;
identificacao = idF;
horas = hF;
}
public void setHoras(int h)
{
horasExtras=h;
}
public void setValorHora(double v)
{
valorHora=v;
}
public int getIdentificacao()
{
return identificacao;
}
public String getNome()
{
return nome;
}
public double getSalario()
{
return valorHora*horas;
}
public double getValorHora()
{
return valorHora;
}
public int getHoras()
{
return (horas+horasExtras);
}
}//fim da classe Funcionario
public class Administrativo extends Funcionario
{
private double salarioB, salarioA;
private int horasAdm;
public Administrativo (String n, int id, int h)
{
super(n,id,h);
}
public void setHorasAdm(int hAdm)
{
this.horasAdm=hAdm;
super.setHoras(hAdm);
}
public double getSalario()
{
this.salarioB=super.getSalario();
this.salarioA=(double)this.horasAdm*super.getValorHora();
return (this.salarioA+this.salarioB);
}
public int getHorasAdm()
{
return this.horasAdm;
}
}//fim da classe Administrativo
public class Docente extends Funcionario
{
private double salarioB, salarioD;
private int horasAula;
public Docente (String n, int id, int h)
{
super(n,id,h);
}
public void setHorasAula(int hAula)
{
this.horasAula=hAula;
super.setHoras(hAula);
}
public double getSalario()
{
this.salarioB=super.getSalario();
this.salarioD=(double)this.horasAula*super.getValorHora();
return (this.salarioD+this.salarioB);
}
public int getHorasAula()
{
return this.horasAula;
}
}//fim da classe Docente
public class Pesquisador extends Funcionario
{
private double salarioP, salarioB;
private int horasPesquisa;
public Pesquisador (String n, int id, int h)
{
super(n,id,h);
}
public void setHorasPesq(int hPesquisador)
{
this.horasPesquisa=hPesquisador;
super.setHoras(hPesquisador);
}
public double getSalario()
{
this.salarioB=super.getSalario();
this.salarioP=(double)this.horasPesquisa*super.getValorHora();
return(this.salarioP+this.salarioB);
}
public int getHorasPesquisa()
{
return this.horasPesquisa;
}
}//fim da classe Pesquisador
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.Box;
public class Curso extends JFrame
{
private JTextArea areaTexto;
private Funcionario[] func;
private static int index=0;
private String nome;
public Curso()
{
setTitle(“Folha de Pagamento”);
Box box = Box.createHorizontalBox();
for (int i=0; i<index; i++)
{
areaTexto.setText(String.format("%s: %s\n%s: %s\n%s: %d\n%s: %d\n%s: %.2f\n%s: %.2f\n\n",“Curso”,nome,“Nome”,func[i].getNome(),“Identificação”,func[i].getIdentificacao(),“Horas trabalhadas”,func[i].getHoras(),“valor da hora”,func[i].getValorHora(),“Salario”,func[i].getSalario()));
box.add(areaTexto);
}
areaTexto = new JTextArea(10,15);
areaTexto.setEditable(false);
<a href="//box.add">//box.add</a>(new JScrollPane(areaTexto));
add(box);
}
public Curso(String tNome, int qtFuncionario)
{
func = new Funcionario[qtFuncionario];
nome=tNome;
}
public void addFuncionario(Funcionario addfunc)
{
func[index]=addfunc;
index++;
}
public static void setQuantCadastrada(int qt)
{
index=qt;
}
}//fim da classe Curso
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Tela extends JFrame
{
Curso curso;
int cont=0;
String qtFuncionarios,nome;
JPanel pEscolha = new JPanel();
JPanel pDados = new JPanel();
JPanel pBotoes = new JPanel();
JButton botaoAdicionar, botaoCancelar, botaoGerar;
JLabel boxLegenda;
JComboBox boxTipo;
JLabel lNome,lIdent, lHoras, lValorHora;
JLabel lHorasTipo = new JLabel();
JTextField fNome, fIdent, fHoras, fHorasTipo,fValorHora;
public Tela()
{
setTitle(“Cadastro da Follha de Pagamento dos Funcionários”);
setSize(600, 230);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(montaPainelEscolha(), BorderLayout.NORTH);
getContentPane().add(montaPainel(), BorderLayout.CENTER);
getContentPane().add(montaPainelBotoes(), BorderLayout.SOUTH);
nome = JOptionPane.showInputDialog("Informe o nome do Curso.");
qtFuncionarios = JOptionPane.showInputDialog("Informe a quantidade de funcionários do Curso.");
curso = new Curso(nome,Integer.parseInt(qtFuncionarios));
}
private JPanel montaPainelEscolha()
{
boxLegenda = new JLabel(“Escolha o tipo de funcionário: “);
boxTipo = new JComboBox();
boxTipo.addItem(“Administrativo”);
boxTipo.addItem(“Docente”);
boxTipo.addItem(“Pesquisador”);
TrataEventoEscolha eventoEsc = new TrataEventoEscolha();
eventoEsc.actionPerformed(null);
boxTipo.addActionListener(eventoEsc);
pEscolha.add(boxLegenda);
pEscolha.add(boxTipo);
return pEscolha;
}
private JPanel montaPainel()
{
pDados.setLayout(new GridLayout(5,2));
lNome = new JLabel(“Nome do funcionario: “);
fNome = new JTextField(20);
lIdent = new JLabel(“Identificação: “);
fIdent = new JTextField(10);
lHoras = new JLabel(“Horas trabalhadas: “);
fHoras = new JTextField(10);
fHorasTipo = new JTextField(10);
lValorHora = new JLabel(“Valor da Hora: “);
fValorHora = new JTextField(10);
pDados.add(lNome);
pDados.add(fNome);
pDados.add(lIdent);
pDados.add(fIdent);
pDados.add(lHoras);
pDados.add(fHoras);
pDados.add(lHorasTipo);
pDados.add(fHorasTipo);
pDados.add(lValorHora);
pDados.add(fValorHora);
return pDados;
}
private JPanel montaPainelBotoes()
{
botaoAdicionar = new JButton(“Adicionar”);
botaoCancelar = new JButton(“Cancelar”);
botaoGerar = new JButton(“Gerar Folha de Pagamento”);
TrataEventoAdicionar eventoAd = new TrataEventoAdicionar();
botaoAdicionar.addActionListener(eventoAd);
TrataEventoCancelar eventoCan = new TrataEventoCancelar();
botaoCancelar.addActionListener(eventoCan);
TrataEventoGerar eventoGerar = new TrataEventoGerar();
botaoGerar.addActionListener(eventoGerar);
pBotoes.add(botaoAdicionar);
pBotoes.add(botaoCancelar);
pBotoes.add(botaoGerar);
return pBotoes;
}
private void limpar()
{
fNome.setText(””);
fIdent.setText(””);
fHoras.setText(””);
fHorasTipo.setText(””);
fValorHora.setText(””);
}
private void adicionar()
{
if(cont<(Integer.parseInt(qtFuncionarios)))
{
switch (boxTipo.getSelectedIndex())
{
case 0:
{
Administrativo ad = new Administrativo(fNome.getText(),Integer.parseInt(fIdent.getText()),Integer.parseInt(fHoras.getText()));
ad.setHorasAdm(Integer.parseInt(fHorasTipo.getText()));
ad.setValorHora(Double.parseDouble(fValorHora.getText()));
curso.addFuncionario(ad);
break;
}
case 1:
{
Docente doc = new Docente(fNome.getText(),Integer.parseInt(fIdent.getText()),Integer.parseInt(fHoras.getText()));
doc.setHorasAula(Integer.parseInt(fHorasTipo.getText()));
doc.setValorHora(Double.parseDouble(fValorHora.getText()));
curso.addFuncionario(doc);
break;
}
case 2:
{
Pesquisador pe = new Pesquisador(fNome.getText(),Integer.parseInt(fIdent.getText()),Integer.parseInt(fHoras.getText()));
pe.setHorasPesq(Integer.parseInt(fHorasTipo.getText()));
pe.setValorHora(Double.parseDouble(fValorHora.getText()));
curso.addFuncionario(pe);
break;
}
}
cont++;
}
if(cont>=(Integer.parseInt(qtFuncionarios)))
{
JOptionPane.showMessageDialog(this,“Já foram cadastrados os “+cont+” funcionários”,“AVISO”,JOptionPane.WARNING_MESSAGE);
fNome.setEditable(false);
fIdent.setEditable(false);
fHoras.setEditable(false);
fHorasTipo.setEditable(false);
fValorHora.setEditable(false);
botaoAdicionar.setEnabled(false);
}
limpar();
}
private void gerar()
{
curso.setSize(400,400);
curso.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
curso.setVisible(true);
if(cont>=(Integer.parseInt(qtFuncionarios)))
{
Curso.setQuantCadastrada(Integer.parseInt(qtFuncionarios));
JOptionPane.showMessageDialog(this,“Folha de pagamento gerado com sucesso!”);
}
else
Curso.setQuantCadastrada(cont);
JOptionPane.showMessageDialog(this,“Folha de pagamento gerado com sucesso!”);
}
class TrataEventoEscolha implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
switch (boxTipo.getSelectedIndex())
{
case 0:
{
lHorasTipo.setText("Horas Administrativas: ");
break;
}
case 1:
{
lHorasTipo.setText("Horas Docente: ");
break;
}
case 2:
{
lHorasTipo.setText("Horas Pesquisador: ");
break;
}
}
}
}
class TrataEventoAdicionar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
adicionar();
}
}
class TrataEventoCancelar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
limpar();
}
}
class TrataEventoGerar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
gerar();
}
}
}//fim da classe Tela
public class Main
{
public static void main(String[] args)
{
Tela t = new Tela();
t.setVisible(true);
}
}
Des de já eu agradeço a ajuda