Um erro. Pq? E como faço para consertar?

4 respostas
thokk

O codigo que esta dando erro é este daqui!!!

private JMenuItem getConfiguraMenuItem() {
		if (ConfiguraMenuItem == null) {
			ConfiguraMenuItem = new JMenuItem();
			ConfiguraMenuItem.setText("Configurações");
			ConfiguraMenuItem.addActionListener(
			new ActionListener(){
				public void actionPerformed(ActionEvent event){
					color = JColorChooser.showDialog(
						TempAnexar.this,"ConfiguraMenuItem",color);
					if(color==null)
						color = Color.LIGHT_GRAY;
					colorJContentPane.setBackground(color);
								}
			}
			);
						
			ConfiguraMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,
					Event.CTRL_MASK, true));
		}
		return ConfiguraMenuItem;
	}

no showDialog ele esta marcando errado, e pedindo para substitui-la, mas eu preciso dela.
Como faço para poder consertar este erro???

O codigo inteiro é este daqui!!!

package Documents;

import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.Event;
import java.awt.BorderLayout;
import javax.swing.SwingUtilities;
import javax.swing.KeyStroke;
import java.awt.Point;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JColorChooser;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JFrame;
import javax.swing.JDialog;


public class TempAnexar {
	

	private JFrame jFrame = null; 

	private JPanel jContentPane = null;

	private JMenuBar jJMenuBar = null;

	private JMenu fileMenu = null;
	
	private JMenu ContMenu = null;

	private JMenu editMenu = null;

	private JMenu helpMenu = null;

	private JMenuItem exitMenuItem = null;

	private JMenuItem aboutMenuItem = null;

	private JMenuItem cutMenuItem = null;

	private JMenuItem copyMenuItem = null;

	private JMenuItem pasteMenuItem = null;

	private JMenuItem saveMenuItem = null;
	
	private JMenuItem PastaMenuItem = null;
	
	private JMenuItem ConfiguraMenuItem = null;
	
	private JMenuItem SiteMenuItem = null;
	
	private JMenuItem ParaMenuItem = null;
	
	private JMenuItem AdcMenuItem = null;
	
	private JMenuItem ApagarMenuItem = null;
	
	private JMenuItem GruposMenuItem = null;
	
	private JMenuItem EnviaMenuItem = null;

	private JFileChooser dialogo = new JFileChooser();
	
	private JColorChooser showDialog = new JColorChooser();
	
	private Color color = Color.LIGHT_GRAY;

	protected JComponent colorJContentPane;
	
	public JFrame getJFrame() {
		if (jFrame == null) {
			jFrame = new JFrame();
			jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			jFrame.setJMenuBar(getJJMenuBar());
			jFrame.setSize(392, 240);
			jFrame.setContentPane(getJContentPane(colorJContentPane));
			jFrame.setTitle("Opções do JobsMenssager");
		}
		return jFrame;
	}
	
	private JPanel getJContentPane(Object colorJContentPane) {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
           	jContentPane.setBackground(Color.WHITE);
		}
		return jContentPane;
	}

	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
			jJMenuBar.add(getFileMenu());
			jJMenuBar.add(getContMenu());
			jJMenuBar.add(getEditMenu());
			jJMenuBar.add(getHelpMenu());
		}
		return jJMenuBar;
	}

	
	private JMenu getFileMenu() {
		if (fileMenu == null) {
			fileMenu = new JMenu();
			fileMenu.setText("Arquivos");
			fileMenu.add(getSaveMenuItem());
			fileMenu.add(getPastaMenuItem());
			fileMenu.add(getConfiguraMenuItem());
			fileMenu.add(getParaMenuItem());
			fileMenu.add(getExitMenuItem());
		}
		return fileMenu;
	}

	private JMenu getContMenu() {
		if (ContMenu == null) {
			ContMenu = new JMenu();
			ContMenu.setText("Contatos");
			ContMenu.add(getAdcMenuItem());
			ContMenu.add(getApagarMenuItem());
			ContMenu.add(getGruposMenuItem());
		}
		return ContMenu;
	}
	
	private JMenuItem getPastaMenuItem() {
		if (PastaMenuItem == null) {
			PastaMenuItem = new JMenuItem();
			PastaMenuItem.setText("Pasta");
			PastaMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					dialogo.setCurrentDirectory(new File("C:\"));
					dialogo.setFileSelectionMode(JFileChooser.FILES_ONLY);
					int escolha = dialogo.showSaveDialog(null);								
					PastaMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
					Event.CTRL_MASK, true));			    
				}
			});
		}	
		return PastaMenuItem;
	}


	private JMenu getEditMenu() {
		if (editMenu == null) {
			editMenu = new JMenu();
			editMenu.setText("Editar");
			editMenu.add(getCutMenuItem());
			editMenu.add(getCopyMenuItem());
			editMenu.add(getPasteMenuItem());
			editMenu.add(getEnviaMenuItem());
		}
		return editMenu;
	}

	
	private JMenu getHelpMenu() {
		if (helpMenu == null) {
			helpMenu = new JMenu();
			helpMenu.setText("Help");
			helpMenu.add(getAboutMenuItem());
			helpMenu.add(getSiteMenuItem());
		}
		return helpMenu;
	}

	private JMenuItem getParaMenuItem() {
		if (ParaMenuItem == null) {
			ParaMenuItem = new JMenuItem();
			ParaMenuItem.setText("Arquivos Recebidos");
			ParaMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
					Event.CTRL_MASK, true));
		}
		return ParaMenuItem;
	}
	
	private JMenuItem getEnviaMenuItem() {
		if (EnviaMenuItem == null) {
			EnviaMenuItem = new JMenuItem();
			EnviaMenuItem.setText("Enviar arquivos");
			EnviaMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					dialogo.setCurrentDirectory(new File("C:\"));
					dialogo.setFileSelectionMode(JFileChooser.FILES_ONLY);
					int escolha = dialogo.showSaveDialog(null);								
			 }
			});
		}
		return EnviaMenuItem;
	}
	
	private JMenuItem getAdcMenuItem() {
		if (AdcMenuItem == null) {
			AdcMenuItem = new JMenuItem();
			AdcMenuItem.setText("Adicionar Contatos");
		}
		return AdcMenuItem;
	}
	
	private JMenuItem getApagarMenuItem() {
		if (ApagarMenuItem == null) {
			ApagarMenuItem = new JMenuItem();
			ApagarMenuItem.setText("Apagar Contatos");
		}
		return ApagarMenuItem;
	}
	
	private JMenuItem getGruposMenuItem() {
		if (GruposMenuItem == null) {
			GruposMenuItem = new JMenuItem();
			GruposMenuItem.setText("Criar Grupos");
		}
		return GruposMenuItem;
	}
	
	private JMenuItem getExitMenuItem() {
		if (exitMenuItem == null) {
			exitMenuItem = new JMenuItem();
			exitMenuItem.setText("Sair");
			exitMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					getJFrame().dispose();
			exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,
				Event.ALT_MASK, true));	
				}
			});
		}
		return exitMenuItem;
	}

	
	private JMenuItem getAboutMenuItem() {
		if (aboutMenuItem == null) {
			aboutMenuItem = new JMenuItem();
			aboutMenuItem.setText("Ajuda");
			aboutMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JDialog aboutDialog = getAboutDialog();
					aboutDialog.pack();
					Point loc = getJFrame().getLocation();
					loc.translate(20, 20);
					aboutDialog.setLocation(loc);
					aboutDialog.setVisible(true);
				}
			});
		}
		return aboutMenuItem;
	}

	
	protected JDialog getAboutDialog() {
		return null;
	}


	private JMenuItem getCutMenuItem() {
		if (cutMenuItem == null) {
			cutMenuItem = new JMenuItem();
			cutMenuItem.setText("Rede");
			cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
					Event.CTRL_MASK, true));
		}
		return cutMenuItem;
	}
	
	private JMenuItem getSiteMenuItem() {
		if (SiteMenuItem == null) {
			SiteMenuItem = new JMenuItem();
			SiteMenuItem.setText("Site");
			SiteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,
					Event.CTRL_MASK, true));
		}
		return SiteMenuItem;
	}
	
	private JMenuItem getConfiguraMenuItem() {
		if (ConfiguraMenuItem == null) {
			ConfiguraMenuItem = new JMenuItem();
			ConfiguraMenuItem.setText("Configurações");
			ConfiguraMenuItem.addActionListener(
			new ActionListener(){
				public void actionPerformed(ActionEvent event){
					color = JColorChooser.showDialog(
						TempAnexar.this,"Choose a color",color);
					if(color==null)
						color = Color.LIGHT_GRAY;
					colorJContentPane.setBackground(color);
								}
			}
			);
						
			ConfiguraMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,
					Event.CTRL_MASK, true));
		}
		return ConfiguraMenuItem;
	}
	
	private JMenuItem getCopyMenuItem() {
		if (copyMenuItem == null) {
			copyMenuItem = new JMenuItem();
			copyMenuItem.setText("Inserir Foto");
			copyMenuItem.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					//dialogo.setCurrentDirectory(new File("C:\"));
					//dialogo.setFileSelectionMode(JFileChooser.FILES_ONLY);
					//int escolha = dialogo.showSaveDialog(null);
					Servico servico = new Servico();
					servico.getEvandro().setIcon(new ImageIcon(getClass().getResource("BARRA.jpg")));
					servico.setVisible(true);
					//copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,
					//Event.CTRL_MASK, true));
		            }
			});
		}		
		return copyMenuItem;
	}

	
	private JMenuItem getPasteMenuItem() {
		if (pasteMenuItem == null) {
			pasteMenuItem = new JMenuItem();
			pasteMenuItem.setText("Mudar Fundo");
			pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,
					Event.CTRL_MASK, true));
		}
		return pasteMenuItem;
	}

	
	private JMenuItem getSaveMenuItem() {
		if (saveMenuItem == null) {
			saveMenuItem = new JMenuItem();
			saveMenuItem.setText("Salvar");
			saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
					Event.CTRL_MASK, true));
		}
		return saveMenuItem;
	}

	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				TempAnexar application = new TempAnexar();
				application.getJFrame().setVisible(true);
			}
		});
	}


	public void setTempAnexar() {
		
		
	}


	public void setVisible(boolean b) {
				
	}

}

Grato
Paulo

4 Respostas

ViniGodoy

TempAnexar não é um Component.

No primeiro parâmetro você tem que dizer qual dos componetes de TempAnexar vai ser pai da ColorDialog. Ele tem que derivar da classe Component.

Tente trocar a linha por:

color = JColorChooser.showDialog(getJFrame(),"ConfiguraMenuItem",color);
cv1

Voce pode postar o menor exemplo de codigo possivel que reproduz o mesmo erro?

thokk

Muito Obrigado aqueles que ajudam!!!

realmente funcionou, mas o pq ele não esta caindo no meu JContentPane??? A cor escolhida.
E ainda esta ocorrendo este erro!!!

ViniGodoy

A variável colorJContentPane nunca foi inicializada. Para corrigir faça o seguinte:

  1. Conserte seu método getJContentPane().

private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.setBackground(Color.WHITE); } return jContentPane; }

  1. Substitua todas as referências de colorJContentPane por getJContentPane(). Como no exemplo abaixo:

ConfiguraMenuItem.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent event){ color = JColorChooser.showDialog(getJFrame(),"ConfiguraMenuItem",color); if(color==null) color = Color.LIGHT_GRAY; getJContentPane().setBackground(color); });

Criado 16 de janeiro de 2007
Ultima resposta 16 de jan. de 2007
Respostas 4
Participantes 3