Please forgive my impatience and stress as this is my 7th day trying to figure this out. I have tried requestfocus everywhere to no avail. I've tried System.out.print'ing the keyPressed at the beginning and there is no response. As soon as I remove the JButton from the code, namely, jp.add(submit); it sstarts working again. Any thoughts?
package scrabbleracks;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Vector;
import javax.imageio.ImageIO;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
public class Scrabble extends JPanel {
public JFrame jf;
public JButton submit;
public Scrabble() {
init();
gui();
}
public void gui() {
jf = new JFrame();
jf.setBounds(0, 0, 1000, 1200);
jf.getContentPane().add(panelGUI());
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
KeyListenerTest kl = new KeyListenerTest();
jf.addKeyListener(kl);
MouseEvents me = new MouseEvents();
jf.addMouseListener(me);
jf.addMouseMotionListener(me);
}
public JPanel panelGUI() {
JPanel jp = new JPanel() {
@Override
public void paintComponent(Graphics g) {
...
}
};
submit = new JButton("Submit");
jp.add(submit);
jp.setFocusable(true);
jp.requestFocusInWindow();
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent d){
...
}
});
jp.setVisible(true);
jp.setOpaque(true);
return jp;
}
public class MouseEvents extends JFrame implements MouseListener, MouseMotionListener {
@Override
public void mousePressed(MouseEvent event) {
}
@Override
public void mouseReleased(MouseEvent arg0) {
}
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public class KeyListenerTest extends JFrame implements KeyListener, ActionListener {
public KeyListenerTest() {
this.setFocusable(true);
this.requestFocusInWindow();
}
@Override
public void keyTyped(KeyEvent ke) {
String f = "";
System.out.println("cantilena");
if ((xxx < 15 && yyy < 15) && (xxx >= 0 && yyy >= 0)) {
char cChar = ke.getKeyChar();
String cStr = Character.toString(cChar).toUpperCase();
System.out.println("bbb " + cStr);
if (isLetter(cStr)) {
if (isOnRack(cStr)) {
System.out.println("LOL " + cStr);
boardLetters2DArray[xxx][yyy] = cStr;
jf.validate();
jf.repaint();
if (downRightOrNothing == 1) {
yyy += 1;
}
if (downRightOrNothing == 2) {
xxx += 1;
}
jf.validate();
jf.repaint();
}else {
System.out.println("vdvvdvdvdvdvdvdvdvdvdvd");
if (isOnRack("_")) {
System.out.println("ccc");
boardLetters2DArray[xxx][yyy] = "thisisablank" + cStr;
if (downRightOrNothing == 1) {
yyy += 1;
}
if (downRightOrNothing == 2) {
xxx += 1;
}
jf.validate();
jf.repaint();
}
}
}
}
}
@Override
public void keyPressed(KeyEvent ke) {
if (ke.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
}
}
@Override
public void keyReleased(KeyEvent ke) {
}
@Override
public void actionPerformed(ActionEvent ae) {
}
}
}
I've tried requestFocusw, rewriting the code from scratch,