wcześniej programowałem w JavaScripcie, więc nie jestem do końca zielony. Niedawno zabrałem się za Javę – w końcu warto ją znać. Napisałem program (kod poniżej) do wypisywania licz pierwszych z wybranego zakresu. Jednakże chciałbym umieścić przycisk po którego naciśnięciu dopiero wszystko się wyświetla. A teraz wyświetla się od razu. Myślę że poradziłbym sobie z przyciskiem, ale kompletnie nie mam pojęcia co zobić żeby metoda "public void paint" uruchamiała się na zawołanie, a nie samoczynnie przy uruchomieniu. Mam nadzieję że nie zagmatwałem za bardzo (: Z góry dzięki za pomoc.
Kod: Zaznacz cały
import java.awt.*;
import java.awt.event.*;
public class HelloKopia extends Frame implements WindowListener, ActionListener
{
public HelloKopia ()
{
super();
addWindowListener(this);
setTitle("Liczby pierwsze");
setSize(240, 300);
setVisible(true);
MenuBar menuBar = new MenuBar();
setMenuBar(menuBar);
Menu menu = new Menu("Plik");
menu.add(new MenuItem("Zamknij"));
menu.addActionListener(this);
menuBar.add(menu);
}
public void paint (Graphics gDC)
{
Font font=new Font("Trebuchet MS", Font.BOLD, 13);
gDC.setFont(font);
int x = 27;
int i = 0;
int l = 60;
String start = "\nW przedziale liczb " + i + " < x < " + x + ":";
gDC.drawString(start, 10, 45);
for (; i <= x; i++)
{
int r = 0;
for (int n=2; n <= i; n++)
{
if (i % n != 0) {
r++;
if (r == i-2)
{
String text = i + " jest liczba pierwsza!";
gDC.drawString(text, 30, l);
l = l + 15;
}
}
}
}
}
public static void main(String args[])
{
new HelloKopia();
}
public void actionPerformed(ActionEvent e)
{
String cmd = e.getActionCommand();
if("Zamknij".equals(cmd))
{
dispose();
}
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void windowClosed(WindowEvent e){}
public void windowOpened(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
}