tomix6
23.06.06, 13:58
Mam problem z tym programem. Po uruchomieniu i kliknieciu w OK actionPerformed
wywoluje repaint obiektu ukladWsp. Tak ma byc. Ale dzieje sie cos jeszcze, bo
w okienku obok pola tekstowego pojawia mi sie maly kwadrat.
Sama matoda repaint nie powoduje bledu, poniewaz przy zmianie rozmiarow okna
jest ona wywolywana i okno zachowuje sie prawidlowo. Ponadto, gdy pojawi sie
juz kwadrat (po kliknieciu OK), kwadrat znika wlasnie przy zmienianiu
rozmiarow okna. Usunalem linie ukladWsp.repaint(); z actionPerformed i wtedy
po klikaniu w OK kwadrat sie nie pojawial. Tylko ze program bez tego nie
dziala heh.
Pojawiajacy sie kwadrat to niby nic, ale kod, ktory zamiescilem, to fragment
wiekszego programu, w ktorym po klikniuciu OK dzieje sie duzo wieksze
spustoszenie w okienku.
Moze jest blad w kodzie, a moze mam problem z kompem. Pracuje na win98se, java
1.4.2, athlonXP. Czy komus jeszcze w okienku pojawia sie dziwny kwadrat? Jesli
ktos zna ten problem, prosze o pomoc.
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class okno extends JFrame implements ActionListener {
public static void main(String[] arguments) {
new okno();
}
UkladWsp ukladWsp = new UkladWsp();
JTextArea dane = new JTextArea(8, 6);
JButton make = new JButton("OK");
public okno() {
super("Uklad wspolrzednych");
setSize(200, 180);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
make.addActionListener(this);
dane.setLineWrap(true);
dane.setWrapStyleWord(false);
JPanel pane = new JPanel();
pane.add(ukladWsp);
pane.add(dane);
pane.add(make);
setContentPane(pane);
show();
}
public void actionPerformed(ActionEvent evt) {
if(evt.getSource() == make) {
System.out.println("klik()");
ukladWsp.repaint();
}
}
class UkladWsp extends JPanel {
public void paintComponent(Graphics comp) {
System.out.println("repaint()");
}
}
}