Botão deveria imprimir círculo mas não faz nada

3 respostas
T

Boa noite!

Eu novamente, procurando desvendar o caminho das pedras. :wink:

Pessoal, é o seguinte: tenho o trecho de código abaixo, que deveria fazer o seguinte: quando eu clico no botão, desenhar um círculo no formulário.
Mas ao clicar no bendito botão, não acontece nada. Alguém poderia me explicar como posso corrigir isso?

Desculpem a minha estupidez, mas é que comecei há pouco em Java, vindo do Delphi, e as coisas lá são mais “fáceis”, ou melhor dizendo, “visuais”, entendem?

Realmente ficaria muito contente se alguém pudesse me ajudar a resolver esse problema, pois estou lutando para largar o Delphi de uma vez… :wink:

Valeu pela ajuda. O Código segue abaixo:

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


public class Novo extends JFrame {
	private javax.swing.JDesktopPane jDesktopPane = null;
	private javax.swing.JPanel jPanel = null;
	private javax.swing.JButton jButton = null;
		
	public Novo() {
		super();
		initialize();
	}
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setContentPane(getJDesktopPane());
		this.setSize(640,480);
		this.setTitle("Exercício 3");
	}
	/**
	 * This method initializes jDesktopPane
	 * 
	 * @return javax.swing.JDesktopPane
	 */
	private javax.swing.JDesktopPane getJDesktopPane() {
		if(jDesktopPane == null) {
			jDesktopPane = new javax.swing.JDesktopPane();
			jDesktopPane.add(getJPanel(), null);
		}
		return jDesktopPane;
	}
	
	/**
	 * This method initializes jPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getJPanel() {
		if(jPanel == null) {
			jPanel = new javax.swing.JPanel();
			jPanel.setLayout(null);			
			jPanel.add(getJButton(), null);

			jPanel.setSize(640,480);
			jPanel.setLocation(0, 0);
			jPanel.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.black,1));
		}
		return jPanel;
	}

		private javax.swing.JButton getJButton() {
		//Propriedades do objeto JButton:
		if(jButton == null) {
			jButton = new javax.swing.JButton();
			jButton.setSize(80,30);
			jButton.setPreferredSize(new java.awt.Dimension(25,25));
			jButton.setName("jbtn_Entrar");
			jButton.setLocation(300,400);
			jButton.setText("Entrar");
		}
		
		//Eventos associados ao objeto JButton:
		jButton.addMouseListener(new java.awt.event.MouseAdapter() { 
			public void mouseClicked(java.awt.event.MouseEvent e) {
				Ellipse2D.Float e1 = new Ellipse2D.Float(25,25,50,50);   
			}
		});		
		
		return jButton;
	}
			
	public static void main(String args[]){
			Novo nova = new Novo();
			nova.show();
		}

}

3 Respostas

E

Bom, no método que trata eventos do botão em questão você criou uma elipse…e daí???

Não fez mais nada com ela…vc tem que mandar desenhá-la onde ela deve ser desenhada, pois ela não vai identificar que foi criada e deve se desenhar por conta própria :stuck_out_tongue:

T

Obrigado pelo toque. É exatamente essa a minha dúvida, COMO desenhá-la. Como faço para desenhá-la no form, sem utilizar um objeto Screen2D?

E

Você pode sobrescrever o método paintComponent de algum componente e mandar desenhar o que você quer.

Nos tutoriais de Swing e AWT da Sun tem isso…dá uma olhada :wink:

Criado 19 de maio de 2004
Ultima resposta 20 de mai. de 2004
Respostas 3
Participantes 2