repaint baggrund?
HeyVed jeg har en række spørgsmål på eksperten som jeg nok skal få fulgt op på, men har endnu et problem, som håber nogen kan hjælpe med.
Jeg skal have opdateret baggrunden i en JApplet fra en indre lytter klasse, tænkte på at bruge repaint, men denne funktion er desværre ikke tilgængelig.. nogen der ved hvordan man så kan gøre?
Herunder koden:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
public class form extends JApplet //implements ActionListener
{
calc c1 = new calc();
Graphics appG, husG;
Image hus = null;
Image applet = null;
static int maxX, maxY, event = 1;
static JPanel PContent, P1, P2;
static JTextField T1;
static JButton B1, B2;
static ActionListener bl = new ActionListener()
{
public void actionPerformed (ActionEvent e) {
if (e.getSource() == B1)
{
event = 0;
System.out.print("Der2");
>>>>>>>>>>> HER SKAL STÅ ET ELLER ANDET DER KAN OPDATERE BAGGRUND
}
else if (e.getSource() == B2)
{
event = 1;
System.out.print("Der1");
>>>>>>>>>>> HER SKAL STÅ ET ELLER ANDET DER KAN OPDATERE BAGGRUND
}
}
};
public void init()
{
maxX = getBounds().width;
maxY = getBounds().height-25;
P2 = new JPanel(new FlowLayout());
P2.setBackground(Color.LIGHT_GRAY);
P2.setBorder(new TitledBorder("Kontrol Panel"));
P1 = new JPanel(new FlowLayout());
P1.setBackground(Color.LIGHT_GRAY);
P1.setBorder(new TitledBorder("Data Panel"));
//PContent = new JPanel(new BoxLayout(PContent, BoxLayout.Y_AXIS));
PContent = new JPanel(new GridLayout(2,2));
getContentPane().add(PContent, BorderLayout.NORTH);
JLabel L1 = new JLabel("Indtast afstand > ");
L1.setForeground(Color.GREEN);
P1.add(L1);
T1 = new JTextField("0",11);
P1.add(T1);
B1 = new JButton("Omregn til km");
B2 = new JButton("Omregn til miles");
P2.add(B1);
B1.addActionListener(bl);
P2.add(B2);
B2.addActionListener(bl);
PContent.add(P1);
PContent.add(P2);
}
public void paint(Graphics g) {
PContent.repaint();
//super.paint(g);
int x = 130;
g.setColor(Color.LIGHT_GRAY);
g.fillRect(0,25,maxX, maxY);
g.setColor(Color.white);
g.fillRect(35,x,210,40);
g.setColor(Color.BLACK);
if (event == 1) {
g.drawString(T1.getText() + " miles omregnet til",35,x+15);
g.drawString((int)(100 * c1.mile2km(Double.parseDouble(T1.getText()))) / 100.0 + " kilometer", 35,x+30);
}
else if(event == 0)
{
g.drawString(T1.getText() + " km omregnet til",35,x+15);
g.drawString((int)(100 * c1.km2mile(Double.parseDouble((T1.getText())))) / 100.0 + " miles",35,x+30);
}
}
}
