Erro de Execução

4 respostas
F

Olá!

Estou com um problema... Tenho duas classes pertencentes ao mesmo package, uma para a janela com os menus e outra para a barra de status. O projeto é compilado mas tenho um erro de execução na classe "main" que diz que estou tentanto adicionar uma janela à um container.

Os códigos são os seguintes:

package projectone;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.border.*;
import java.text.DecimalFormat;

public class BottonPanel extends JFrame {
	
	JLabel hours, date;
	String dayweek[] = {"Domingo", "2ª Feira", "3ª Feira", "4ª Feira", "5ª Feira", "6ª Feira", "Sábado"};
	String month[] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro",	"Dezembro"};
						
	public BottonPanel() {
		
		Border border = BorderFactory.createLoweredBevelBorder();
		
		hours = new JLabel("horas", JLabel.CENTER);
		hours.setPreferredSize(new Dimension(75, 20));
		hours.setBorder(border);
		
		date = new JLabel("data", JLabel.CENTER);
		date.setPreferredSize(new Dimension(215, 20));
		date.setBorder(border);
		
		JPanel botton = new JPanel();
		botton.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 0));
		
		botton.add(hours);
		botton.add(date);
		
		ActionListener task = new ActionListener() {
			
			public void actionPerformed(ActionEvent e) {
				
				hoursDate();
				
			}
		};
		
		javax.swing.Timer timer = new javax.swing.Timer(1000, task);
		timer.start();
		
	}
	
	private void hoursDate() {
		Calendar now = Calendar.getInstance();
		int ho = now.get(Calendar.HOUR_OF_DAY);
		int mi = now.get(Calendar.MINUTE);
		int se = now.get(Calendar.SECOND);
		
		int dw = now.get(Calendar.DAY_OF_WEEK);
		int dy = now.get(Calendar.DAY_OF_MONTH);
		int mt = now.get(Calendar.MONTH);
		int yr = now.get(Calendar.YEAR);
		
		hours.setText(format(ho % 12) + ":" + format(mi) + ":" + format(se) + "");
		
		date.setText(dayweek[dw - 1] + ", " + format(dy) + " de " + month[mt] + " de " + yr + "");		
	}
	
	private String format(int num) {
		DecimalFormat df = new DecimalFormat("00");
		
		return df.format(num);
	}
}
package projectone;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Menus extends JFrame {
	
	JMenuItem exit;
		
	public Menus() {
			
	// Nome Barra Janela		
		super("Primeiro Projeto");
				
	// Abertura Container
		Container mainwindow = getContentPane();
		
		FlowLayout layout = new FlowLayout();
		mainwindow.setLayout(layout);		

	// Menu		
		// Barra de Menus
		JMenuBar bar = new JMenuBar();
		setJMenuBar(bar);
		
		// Item do Menu
		JMenu file = new JMenu("Arquivo");
		file.setMnemonic(KeyEvent.VK_A);
		
		// SubItem1 do Menu		
		Treatment treat = new Treatment();
		exit = new JMenuItem("Sair");
		exit.setMnemonic(KeyEvent.VK_S);
		exit.addActionListener(treat);
		
		// Adiciona SubItem1 ao Item
		file.add(exit);
		
		// Adiciona Item à Barra	
		bar.add(file);
	
	// Botão 1
		JButton btnone = new JButton("Botão 1");
		// Adiciona Botão à Tela
		mainwindow.add(btnone);

	// Painel Inferior
		BottonPanel bottonPanel = new BottonPanel();
		mainwindow.add(bottonPanel, BorderLayout.SOUTH);

	// Configuração da Tela
		setSize(1025, 740);
		setVisible(true);	
	
	}
	
		// Método main()
	public static void main(String args[]) {
		
		Menus app = new Menus();
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	
		// Tratamento de Eventos
	private class Treatment implements ActionListener {
		
		public void actionPerformed(ActionEvent e) {
			
			if(e.getSource() == exit)
			System.exit(0);			

		}
	}
}

Agradeço a ajuada que alguém possa me dar.

Abraço,

ffranco

4 Respostas

drix

Por favor, nos informe o “StackTrace”, para que possamos analisar melhor seu problema!

:wink:

F

Prezado drix,

Desculpe-me minha ignorância em não entender o que vc quis dizer por “StackTrace”. Sou iniciante e ainda não estou totalmente familiarizado com determinados termos. No entanto imagino que vc tenha solicitado a mensagem do erro, que segue abaixo:

“Exception in thread “main” java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImplContainer.java:1010
at java.awt.Container.addContainer.java:899
at projectone.Menus.Menus.java:50
at projectone.Menus.mainMenus.java:61
press any key to continue…”

Se não foi esta sua solicitação, favor explicar.

Muito Obrigado!!!

ffranco

F

Por Favor,

Alguém poderia me ajudar?

Obrigado,

ffranco

T
at projectone.Menus.<init><Menus.java:50>

Qual é a linha 50 do seu programa, por obséquio?

Criado 17 de setembro de 2006
Ultima resposta 19 de set. de 2006
Respostas 4
Participantes 3