//DrawLines.java
import javax.swing.JPanel;
import java.awt.Graphics;
public class DrawLines extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
int counter = 1;
int passos = 0;
while(height - passos >= 0)
{
g.drawLine(0, 0, passos, height - passos);
passos = passos + 15;
counter++;
}
}
}
////DrawLinesTest.java/////////
import javax.swing.JFrame;
public class DrawLinesTest
{
public static void main(String args[])
{
DrawLines panel = new DrawLines();
JFrame application = new JFrame();
application.add(panel);
application.setSize(250, 250);
application.setVisible(true);
}
}
Processo não fecha após encerrar programa
G
Pessoal, sou novo no fórum e sou novo em java também. Adquiri recentemente o livro dos Deitel (6ª ed.) Até que comecei a seguir os exemplos do livro para criar interfaces gráficas, utilizando swing e awt. Porém, ao tentar fazer o exercício 4.1, que pede para desenharmos linha numa janela, aparece tudo corretamente, e quando eu clico no botão fechar, o processo continua correndo e tenho que matá-lo na mão. Gostaria de uma luz para não cometer erros (se fosse em C, tinha dado um exit(0) e tava tudo bem).
Segue os códigos
5 Respostas
Coloca assim, dentro do método main:
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Abraços!
Olá
Tenta com a seguinte linha a mais
setDefautCloseOperation(JFrame.EXIT_ON_CLOSE);
public class DrawLinesTest
{
public static void main(String args[])
{
DrawLines panel = new DrawLines();
JFrame application = new JFrame();
application.add(panel);
application.setSize(250, 250);
application.setVisible(true);
application.setDefautCloseOperation(JFrame.EXIT_ON_CLOSE);
}
# }
import javax.swing.JPanel;
import java.awt.Graphics;
public class DrawLines extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
int counter = 1;
int passos = 0;
//olha aqui
this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
while(height - passos >= 0)
{
g.drawLine(0, 0, passos, height - passos);
passos = passos + 15;
counter++;
}
}
}
Só mais uma informação… se voce quiser deixar essa tela no meio da tela voce só precisa setar o a posição relativa a nada
public static void main(String args[])
{
DrawLines panel = new DrawLines();
JFrame application = new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.setLocationRelativeTo(null);
application.add(panel);
application.setSize(250, 250);
application.setVisible(true);
}
G
Galera, valeu pela dica. Era exatamente isso que eu estava precisando. E vamo que vamo seguindo os estudos. Mark_Ameba, vlw pela outra dica. É sempre bom saber além do escopo do livro.
Vlw
Criado 4 de dezembro de 2008
Ultima resposta 4 de dez. de 2008
Respostas 5
Participantes 5
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo