Треугольник в Java

  • Автор темы Famous
  • Дата начала
F

Famous

Гость
#1
Задача была такова что после того как пользователь введёт стороны и нажмёт изобразить, то на экране появится треугольник с якобы заданными сторонами, мне не столь важно что бы программа высчитывала сами стороны и тип треугольника, это всё я уже знаю ибо с легкостью сделал эту задачу на делфи, но в Java ещё совсем не разобрался что и как, вот код задачи, пожалуйста если не сложно напишите строки которые сначала скроют этот треугольник, а после того как я нажму кнопку "изобразить" треугольник появится...заранее спасибо, очень надеюсь на вашу отзывчивость и оперативность ибо хочу завтра сдать задачу...
<!--shcode--><pre><code class='java'>import java.awt.*;
import java.applet.*;
import java.math.*;
import java.awt.event.*;
public class treugol extends Applet{
//Объявление переменных
TextField t1, t2, t3;
Button b1;
String Sa;
//При инициализации апплета создаем элементы управления
public void init(){
//Устанавливаем абсолютное позиционирование
//компонентов внутри апплета
setLayout(null);
//Установка желтого фона для апплета
setBackground(Color.yellow);
//Создание метки и текстового поля для коэф. a
//Создание метки
Label l1 = new Label("Введите a: ");
//Установка границ метки
l1.setBounds(20, 20, 180, 20);
//Добавление метки на рабочее поле аплета
add(l1);
//Создание текстового поля для а
t1 = new TextField(10);
//Установка границ текстового поля
t1.setBounds(20, 40, 100, 20);
//Добавление текстового поля на рабочее поле аплета
add(t1);
//Создание метки и текстового поля для коэф. b
Label l2 = new Label("Введите b: ");
l2.setBounds(20, 60, 180, 20);
add(l2);
t2 = new TextField(10);
t2.setBounds(20, 80, 100, 20);
add(t2);
//Создание метки и текстового поля для коэф. с
Label l3 = new Label("Введите c: ");
l3.setBounds(20, 100, 180, 20);
add(l3);
t3 = new TextField(10);
t3.setBounds(20, 120, 100, 20);
add(t3);
//Создание кнопки
b1 = new Button("Изобразить");
b1.setBounds(20, 170, 160, 20);
add(b1);
}


public void paint (Graphics g)
{ triangle(g);}

public void triangle (Graphics my_graphics){
{ my_graphics.drawLine(300, 500, 700, 500);// сторона сверху "a" (x, y, x ,y)
my_graphics.drawLine(600, 600, 700, 500);// сторона справа "b"
my_graphics.drawLine(600, 600, 300, 500);//сторона слева "c"
}
}
}[/CODE]
 

a0z

Well-Known Member
15.03.2011
108
0
#2
Добавь переменную, например
Boolean showTriangle = false;

в обработчике нажатия кнопки
showTriangle = true;
invalidate() -- не зню, как это в java называется, должно заставить перерисовать клиентскую область

Ну и
public void paint (Graphics g)
{
if(showTriangle)
triangle(g);
}