I'm trying to display a Jpanel that is added into a Jframe,for making this is i created a variable that turns on or off when ENTER is pressed, I even tried to make a counter that counts times Enter is pressed but it stops working after one call, but if i remove the setVisible(); part the counter keeps being incremented. Please help.I leave the code here:
package test;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import game.Component;
public class Panel {
public boolean chat=Listener.chat;
public static void main(String[]args) {
JFrame frame = new JFrame();
frame.setTitle("Finestra di test per il gioco");
frame.setResizable(false);
frame.getContentPane().setBackground(Color.CYAN);
Dimension di = new Dimension(500,30);
frame.setBounds(0, 0, 500, 500);
frame.setResizable(false);
JPanel chatLayer=new JPanel();
chatLayer.setBounds(0, 0, 500, 500);
chatLayer.setBackground(Color.GREEN);
JTextField barra_chat=new JTextField();
barra_chat.setPreferredSize(di);
chatLayer.add(barra_chat);
frame.add(chatLayer);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Listener li=new Listener(chatLayer);
barra_chat.addKeyListener(li);
frame.validate();
frame.setVisible(true);
}
}
package test;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
import test.Component;
public class Listener implements KeyListener{
int x=0;
JPanel pan = new JPanel();
public static boolean chat=true;
public Listener(JPanel pan) {
this.pan=pan;
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
int key=e.getKeyCode();
switch(key) {
case KeyEvent.VK_ENTER:
if(!chat) {
pan.setVisible(true);
chat=true;
System.out.println(chat);
x+=1;
System.out.println(x);
}else {
pan.setVisible(false);
chat=false;
System.out.println(chat);
x+=1;
System.out.println(x);
}
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
}
}