Então gente, sou meio que novo até em java e eu tinha que fazer um exemplo usando método abstrato e eu fiz o meu e deu certo, e meu amigo ia fazer um também mas o dele ele não tava conseguindo fazer a interface e ele pediu pra eu ajudar ele ( a gente é do mesmo grupo e no final vamos usar o meu exemplo).
Aí eu fui mexer no dele mas agora na parte da interface estou com um erro que não consigo entender o que é, não mostra nenhum código em si errado então fiquei perdidão.
Alguem pode me dizer o que é?
A classe animes
package animes;
public abstract class Anime {
private String nome;
private int temporada;
private String situacaoAnime;
private String datacc;
private String personagempp;
private int idademin;
public Anime(String nome, int temporada, String situacaoAnime, String datacc, String personagempp, int idademin) {
this.nome = nome;
this.temporada = temporada;
this.situacaoAnime = situacaoAnime;
this.datacc = datacc;
this.personagempp = personagempp;
this.idademin = idademin;
}
public int getIdademin() {
return idademin;
}
public void setIdademin(int idademin) {
this.idademin = idademin;
}
public String getNome() {
return nome;
}
public int getTemporada() {
return temporada;
}
public String getSituacaoAnime() {
return situacaoAnime;
}
public void setSituacaoAnime(String situacaoAnime) {
this.situacaoAnime = situacaoAnime;
}
public String getDatacc() {
return datacc;
}
public String getPersonagempp() {
return personagempp;
}
public abstract String resumo();
public abstract String generoAlvo();
public String dados(){
return "Nome do anime: "+nome+
"\nData de Criação: "+datacc+
"\nTemporadas: "
+temporada+
"\nIdade Mínima: "+idademin
+"\nGênero: "+generoAlvo()+
"Personagem Principal: "+personagempp+
"\nSinopse: \n"+resumo();
}
}
E aqui a seguir as outras classes
Shoujo
public class Shoujo extends Anime {
private String texto;
private String p1;
private String p2;
public Shoujo(String texto, String p1, String p2, String nome, int temporada, String situacaoAnime, String datacc, String personagempp, int idademin) {
super(nome, temporada, situacaoAnime, datacc, personagempp, idademin);
this.texto = texto;
this.p1 = p1;
this.p2 = p2;
}
public void setP1(String p1) {
this.p1 = p1;
}
public void setP2(String p2) {
this.p2 = p2;
}
public String setRomance(String p1,String p2){
return "Romance entre "+p1+" e "+p2;
}
@Override
public String resumo(){
return texto;
}
@Override
public String generoAlvo()
{
return "Gênero Feminino em geral";
}
@Override
public String dados(){
return super.dados()+"Romance entre: "+setRomance(p1,p2) ;
}
}
Shounen
public class Shounen extends Anime
{
private String protagonista;
private String vilaoPrincipal;
private String texto;
public String getProtagonista() {
return protagonista;
}
public void setProtagonista(String protagonista) {
this.protagonista = protagonista;
}
public String getVilaoPrincipal() {
return vilaoPrincipal;
}
public void setVilaoPrincipal(String vilaoPrincipal) {
this.vilaoPrincipal = vilaoPrincipal;
}
public Shounen(String protagonista, String vilaoPrincipal, String texto, String nome, int temporada, String situacaoAnime, String datacc, String personagempp, int idademin) {
super(nome, temporada, situacaoAnime, datacc, personagempp, idademin);
this.protagonista = protagonista;
this.vilaoPrincipal = vilaoPrincipal;
this.texto = texto;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
@Override
public String resumo()
{
return texto;
}
@Override
public String generoAlvo()
{
return "Gênero Masculino em geral";
}
@Override
public String dados()
{
return super.dados()+"\nProtagonista: "+protagonista+"\nVilão Principla: "+vilaoPrincipal;
}
}
Kodomo
public class Kodomo extends Anime{
private String texto;
public Kodomo(String texto, String nome, int temporada, String situacaoAnime, String datacc, String personagempp, int idademin) {
super(nome, temporada, situacaoAnime, datacc, personagempp, idademin);
this.texto = texto;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
@Override
public String generoAlvo()
{
return "Criança";
}
@Override
public String resumo(){
return texto;
}
}
e Seinen
public class Seinen extends Anime
{
private String texto;
private String cenasf;
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
public String getCenasf() {
return cenasf;
}
public void setCenasf(String cenasf) {
this.cenasf = cenasf;
}
public Seinen(String texto, String cenasf, String nome, int temporada, String situacaoAnime, String datacc, String personagempp, int idademin) {
super(nome, temporada, situacaoAnime, datacc, personagempp, idademin);
this.texto = texto;
this.cenasf = cenasf;
}
@Override
public String generoAlvo()
{
return "Jovens/Adultos";
}
@Override
public String resumo(){
return texto;
}
@Override
public String dados()
{
return super.dados()+
"\nCenas Fortes? "+cenasf;
}
}
e por fim aqui a interface
package tela;
import animes.Anime;
import animes.Kodomo;
import javax.swing.JOptionPane;
public class Tela extends javax.swing.JFrame {
Anime anime;
public Tela() {
initComponents();
setLocationRelativeTo(null);
}
private void jtNomeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jrShoujoActionPerformed(java.awt.event.ActionEvent evt) {
generoEscolhido();
}
private void jrSeinenActionPerformed(java.awt.event.ActionEvent evt) {
generoEscolhido();
}
private void jtMocinhaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jrKodomoActionPerformed(java.awt.event.ActionEvent evt) {
generoEscolhido();
}
private void jrShounenActionPerformed(java.awt.event.ActionEvent evt) {
generoEscolhido();
}
private void jrCFSimActionPerformed(java.awt.event.ActionEvent evt) {
cenasF();
}
private void jrCFNaoActionPerformed(java.awt.event.ActionEvent evt) {
cenasF();
}
private void jbInfActionPerformed(java.awt.event.ActionEvent evt) {
if(jtNome.getText().trim().isEmpty())
{
JOptionPane.showMessageDialog(null,"Campo Nome vazio, por favor preencher!","Aviso",2);
jtNome.setText(null);
jtNome.requestFocusInWindow();
return;
}
if(jtData.getText().trim().isEmpty())
{
JOptionPane.showMessageDialog(null,"Campo Data de Criação vazio, por favor preencher!","Aviso",2);
jtData.setText(null);
jtData.requestFocusInWindow();
return;
}
if(jtTemp.getText().trim().isEmpty())
{
JOptionPane.showMessageDialog(null,"Campo Nº Temporadas vazio, por favor preencher!","Aviso",2);
jtTemp.setText(null);
jtTemp.requestFocusInWindow();
return;
}
if(jtIdade.getText().trim().isEmpty())
{
JOptionPane.showMessageDialog(null,"Campo Idade Mínima vazio, por favor preencher!","Aviso",2);
jtIdade.setText(null);
jtIdade.requestFocusInWindow();
return;
}
if(jtResumo.getText().trim().isEmpty())
{
JOptionPane.showMessageDialog(null,"Campo Sinopse vazio, por favor preencher!","Aviso",2);
jtResumo.setText(null);
jtResumo.requestFocusInWindow();
return;
}
if(jrKodomo.isSelected())
{
String nome = jtNome.getText();
String data = jtData.getText();
int temporada = Integer.parseInt(jtTemp.getText());
int idade = Integer.parseInt(jtIdade.getText());
String situacao = (String)jcSitu.getSelectedItem();
String texto = jtResumo.getText();
String pp = jtProt.getText();
anime = new Kodomo(texto,nome,temporada,situacao,data,pp,idade);
jtAnime.setText(anime.dados());
}
}
public void generoEscolhido()
{
if(jrKodomo.isSelected())
{
jLabel1.setVisible(false);
jLabel2.setVisible(false);
jLabel3.setVisible(false);
jLabel4.setVisible(true);
jLabel5.setVisible(false);
jLabel6.setVisible(false);
jtProt.setVisible(true);
jtVilao.setVisible(false);
jtMocinha.setVisible(false);
jtMocinho.setVisible(false);
jrCFSim.setVisible(false);
jrCFNao.setVisible(false);
jtEspecificado.setVisible(false);
}
if(jrShounen.isSelected())
{
jLabel1.setVisible(false);
jLabel2.setVisible(false);
jLabel3.setVisible(false);
jLabel4.setVisible(true);
jLabel5.setVisible(true);
jLabel6.setVisible(false);
jtProt.setVisible(true);
jtVilao.setVisible(true);
jtMocinha.setVisible(false);
jtMocinho.setVisible(false);
jrCFSim.setVisible(false);
jrCFNao.setVisible(false);
jtEspecificado.setVisible(false);
}
if(jrSeinen.isSelected())
{
jLabel1.setVisible(false);
jLabel2.setVisible(false);
jLabel3.setVisible(true);
jLabel4.setVisible(false);
jLabel5.setVisible(false);
jtProt.setVisible(false);
jtVilao.setVisible(false);
jtMocinha.setVisible(false);
jtMocinho.setVisible(false);
jrCFSim.setVisible(true);
jrCFNao.setVisible(true);
jtEspecificado.setVisible(false);
jLabel6.setVisible(false);
}
if(jrShoujo.isSelected())
{
jLabel1.setVisible(true);
jLabel2.setVisible(true);
jLabel3.setVisible(false);
jLabel4.setVisible(false);
jLabel5.setVisible(false);
jLabel6.setVisible(false);
jtProt.setVisible(false);
jtVilao.setVisible(false);
jtMocinha.setVisible(true);
jtMocinho.setVisible(true);
jrCFSim.setVisible(false);
jrCFNao.setVisible(false);
jtEspecificado.setVisible(false);
}
}
public void cenasF()
{
if(jrCFSim.isSelected())
{
jLabel6.setVisible(true);
jtEspecificado.setVisible(true);
}
if(jrCFNao.isSelected())
{
jLabel6.setVisible(false);
jtEspecificado.setVisible(false);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Tela.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Tela.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Tela.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Tela.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Tela().setVisible(true);
}
});
}
}
Eu ainda n terminei a interface, só testei entrando com dados e selecionando o genero Kodomo( q seria anime pra criança) mas ai quando clico pra mostrar as informações da esses erros:
run:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: " 15"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.parseInt(Integer.java:615)
at tela.Tela.jbInfActionPerformed(Tela.java:505)
at tela.Tela.access$800(Tela.java:17)
at tela.Tela$9.actionPerformed(Tela.java:378)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
CONSTRUÍDO COM SUCESSO (tempo total: 23 segundos)