Witam, jako zupełna świeżynka w temacie GUI proszę o pomoc.
Problem polega na tym, że po najechaniu na przeźroczysty przycisk zmienia on kolor na fragment mapy będącej tłem, kilkakrotnie - staje się coraz ciemniejszy. W polu tekstowym w miarę wpisywania również tło staje się coraz ciemniejsze, po przejściu do kolejnej linijki wraca do normalności (pole i button) i efekt się powtarza.
Po naciśnięciu przycisku odświeżana jest zawartość dwóch pozostałych JTextArea i w miejscu gdzie jest karetka również jest kawałek tła nie wiadomo skąd.
public class Okienko extends JFrame implements ActionListener{
String wyswietl, komenda;
JLabel info;
JPanel pStat, pButton;
JTextArea pole1, pole2, stat, statDane, spacja;
JButton przycisk;
Mapa pmapa;
Bohater bohater;
public Okienko ( Bohater bohaterek)
{
wyswietl = "Witaj w grze! \nPomóż bohaterowi odnaleźc zaginiony skarb";
bohater = bohaterek;
setVisible(true);
setSize(1366, 768);
stat = new JTextArea();
stat.setSize(200,100);
stat.setBackground(new Color(0,0,0,0));
stat.setFont(stat.getFont().deriveFont(1,16.0f));
stat.setEditable(false);
stat.setText("\nInformacje: \nŻycie: \nZłoto:\nSiła:\nObrona:\nEkwipunek:");
pStat = new JPanel (new GridLayout(1,2, 2,2));
pStat.setBackground(new Color(0,0,0,0));
pStat.add(stat);
statDane = new JTextArea();
statDane.setEditable(false);
statDane.setBackground(new Color(0,0,0,0));
statDane.setText("(...) ustawianie odpowiednich paramentrow");
pStat.add(statDane);
pole1 = new JTextArea(wyswietl);
pole1.setBackground(new Color(0,0,0,0));
pole1.setEditable(false);
pole1.setSize(300,100);
pole2 = new JTextArea();
pole2.setBackground(new Color(0,0,0,20));
pole1.setWrapStyleWord(true);
pole2.setWrapStyleWord(true);
pole1.setLineWrap(true);
pole2.setLineWrap(true);
pButton = new JPanel(new BorderLayout());
pButton.setBackground(new Color(0,0,0,0));
przycisk = new JButton("Potwierdź");
przycisk.setBackground(new Color(0,0,0,30));
info = new JLabel("Tutaj wpisz swoje polecenie: ");
pButton.add(info, BorderLayout.NORTH);
pButton.add(pole2, BorderLayout.CENTER);
pButton.add(przycisk, BorderLayout.SOUTH);
pmapa = new Mapa();
add(pmapa, BorderLayout.CENTER);
pmapa.add(pStat/*, BorderLayout.WEST*/);
pmapa.add(pole1/*, BorderLayout.CENTER*/);
pmapa.add(pButton);
przycisk.addActionListener(this);
validate();
}
void odswiez ()
{
statDane.setCaretPosition(0);
statDane.setText("");
//wyciete, tutaj są ustawiane wartości (...)
pole2.setText("");
}
public void actionPerformed(ActionEvent e) {
komenda = pole2.getText();
wyswietlTekst(komenda);
wyswietl = "Przed chwila wpisales: " + komenda;
pole1.setText(wyswietl);
odswiez();
/*this.revalidate();
this.repaint();*/
}
}
public class Mapa extends JPanel {
int x = 3*60+70, y = 3*60+260, velX = 1;
public void paintComponent(Graphics g)
{
super.paintComponent(g);
ImageIcon i = new ImageIcon("grafika\\mapa.png");
i.paintIcon(this, g, 0, 0);
//(...)
ImageIcon bohaterek = new ImageIcon("grafika\\bohater.png");
bohaterek.paintIcon(this, g, x, y);
}
public void moving()
{
x = x + velX;
y = y - velX;
repaint();
}
Próbowałam z karetką w tekstach, zmienić jej widoczność - bezskutecznie. Próbowałam usuwać i dodawać elementy na nowo, też nie działa. Kompletnie nie mam pomysłu co dalej.