Hi,
ich ahbe ein kleines U-Prog. Dies fragt in einem Kleinen Fenster zwei Eingaben ab. Diese sollen dannach in der Methode paint() verarbeitet werden. Wenn ich das Programm laufen lasse, dann kommt zwar das kleine Fenster aber nicht die darin enthaltenen Labels und Eingabefelder. Wenn ich paint auskommentiere funktioniert es.
Hier mal der Code:
ich ahbe ein kleines U-Prog. Dies fragt in einem Kleinen Fenster zwei Eingaben ab. Diese sollen dannach in der Methode paint() verarbeitet werden. Wenn ich das Programm laufen lasse, dann kommt zwar das kleine Fenster aber nicht die darin enthaltenen Labels und Eingabefelder. Wenn ich paint auskommentiere funktioniert es.
Hier mal der Code:
Code:
package Simulationen;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import layout.TableLayout;
import java.util.*;
public class biester extends Frame
{
static biester fenster = new biester();
int breite = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int hoehe = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int futter = 0;
int biester = 0;
int i;
short pixelX = 0;
short pixelY = 0;
int x = 0;
int y = 0;
int Farbwert = 0;
short[] rot = {0,64,85,106,127,148,170,191,212,233,255,249,
243,236,230,224,217,211,204,198,192,185,179,
173,166,160,153,147,141,134,128,122,115,109,
102,96,90,83,77,71,64,58,51,45,39,32,26,20,
13,7,0};
short[] gruen = {0,0,0,0,0,0,0,0,0,0,0,6,12,19,25,31,38,44,51,
57,63,70,76,82,89,95,102,108,114,121,127,
133,140,146,153,159,165,172,178,184,191,197,
204,210,216,223,229,235,242,248,0};
short[] blau = {0,0,0,0,0,0,0,0,0,0,0,6,12,19,25,31,38,44,51,
57,63,70,76,82,89,95,102,108,114,121,127,
133,140,146,153,159,165,172,178,184,191,197,
204,210,216,223,229,235,242,248,0};
short[] rot_13 = {0,0,0,64,128,0,192,255,255,255,255,255,255};
short[] gruen_13 = {0,0,255,64,128,255,192,0,200,175,0,255,255};
short[] blau_13 = {0,255,255,64,128,0,192,255,0,175,0,0,255};
Color Farbe = new Color(0,0,0);
Random r = new Random();
JTextField TF = new JTextField("",4);
JTextField TB = new JTextField("",4);
public void init_window()
{
double border = 10;
double size[][] =
{{border,100, 70,border},
{20,20,20,20,20,20}};
JLabel L1 = new JLabel("Futtermenge");
JLabel L2 = new JLabel("Anzahl Biester");
JButton BOK = new JButton("OKAY");
BOK.setActionCommand("B1");
JButton BEnd = new JButton("Ende");
BEnd.setActionCommand("B2");
pack();
fenster.setSize(250, 200);
fenster.setTitle("Eingabe der Startwerte");
fenster.setBackground(Color.YELLOW);
fenster.setLayout(new TableLayout(size));
fenster.add(L1,"1,1");
fenster.add(L2,"1,3");
fenster.add(TF,"2,1");
fenster.add(TB,"2,3");
fenster.add(BOK,"1,5");
fenster.add(BEnd,"2,5");
fenster.show();
}
ActionListener al = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("B1"))
{
futter = Integer.parseInt(TF.getText());
biester = Integer.parseInt(TB.getText());
fenster.dispose();
fenster.setSize(breite,hoehe);
fenster.setTitle("Biester Simulation");
fenster.setBackground(Color.WHITE);
}
if(e.getActionCommand().equals("B2"))
{
fenster.dispose();
}
};
};
public boolean handleEvent (Event ev)
{
if (ev.id == Event.WINDOW_DESTROY)
{
// Programm beenden
hide();
return true;
}
super.handleEvent(ev);
return false;
}
public void paint(Graphics g)
{
for (i=1; i<futter;i++)
{
x = 1 + Math.abs(r.nextInt()) % 1280;
y = 1 + Math.abs(r.nextInt()) % 1024;
Farbe = new Color(255,0,0);
g.setColor(Farbe);
g.drawLine(x,y,x,y);
}
}
}
Noch eine zweite Frage. Wenn ich mehrer Zyklen in diesem Programm habe, wo und wie muß ich paint () dann aufrufen, das mehrmals hintereinander gezeichnet wird.
Danke