public OnscreenKeyboardWindow(Window parent, String title) { super(parent); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setTitle(title); JPanel p = (JPanel) getContentPane(); p.setBackground(Config.get("keyboard.color.background", Color.BLACK)); p.setOpaque(true); int gap = Config.get("keyboard.gap", 3); setLayout(new GridLayout(0, Config.get("keyboard.colums", 5), gap, gap)); if (gap != 0) { p.setBorder(new EmptyBorder(gap, gap, gap, gap)); } for (final String s : Config.getArray("keyboard.keys")) { KeyboardButton bt = new KeyboardButton(s); bt.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { for (KeyboardListener l : listener) { l.keyInserted(s); } } }); add(bt); } fontSize = Config.get("keyboard.fontSize", 14); pack(); setLocationRelativeTo(parent); AWTUtilitiesWrapper.setWindowOpacity(this, Config.get("keyboard.opacity", 80) / 100f); }