public RemoveFrame() { frame = new JFrame("Select Files you wish to Remove from Drive"); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.getRootPane().setDefaultButton(confirm); try { files = DriveList.list(); } catch (IOException e) { files = new ArrayList<File>(); } confirm = new JButton("Remove"); quit = new JButton("Cancel"); confirm.addActionListener(this); quit.addActionListener(this); frame.setLayout(new BorderLayout()); checkPanel = new JPanel(); control = new JPanel(); control.setLayout(new GridLayout(1, 2)); control.add(confirm); control.add(quit); frame.add(control, BorderLayout.SOUTH); drawCheckPanel(); frame.add(checkPanel, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); }
public boolean dirty() { if (!XJApplication.shared().supportsPersistence()) return false; Boolean b = (Boolean) jFrame.getRootPane().getClientProperty(PROPERTY_WINDOW_MODIFIED); if (b == null) return false; else return b.booleanValue(); }
private void registerDisposeListeners() { dialog.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { disposeFrame(); } }); // handle window closing commands for ctrl/cmd-W or hitting ESC. Toolkit.registerWindowCloseKeys( dialog.getRootPane(), new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { disposeFrame(); } }); dialog .getContentPane() .addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent e) { // System.out.println(e); KeyStroke wc = Toolkit.WINDOW_CLOSE_KEYSTROKE; if ((e.getKeyCode() == KeyEvent.VK_ESCAPE) || (KeyStroke.getKeyStrokeForEvent(e).equals(wc))) { disposeFrame(); } } }); }
// Adds a new keybinding equal to the character provided and the default super key (ctrl/cmd) private static void bind(int Character) { frame .getRootPane() .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) .put( KeyStroke.getKeyStroke(Character, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()), "console"); }
/** * Show the avatar dialog as a glasspane of the mainframe * * @param show show dialogs if sets to TRUE - hide otherwise */ private void showDialog(MouseEvent e, boolean show) { if (this.popupMenu == null) { return; } if (show) { Point imageLoc = this.getLocationOnScreen(); Point rootPaneLoc = mainFrame.getRootPane().getLocationOnScreen(); this.popupMenu.setSize(mainFrame.getRootPane().getWidth(), this.popupMenu.getHeight()); this.popupMenu.show(this, (rootPaneLoc.x - imageLoc.x), this.getHeight()); } else { this.drawOverlay = false; this.repaint(); } }
public void showInFocusCenter() { final Component focused = getWndManager().getFocusedComponent(myProject); if (focused != null) { showInCenterOf(focused); } else { final JFrame frame = WindowManager.getInstance().getFrame(myProject); showInCenterOf(frame.getRootPane()); } }
public void resetDirty() { if (!XJApplication.shared().supportsPersistence()) return; if (dirty) { dirty = false; jFrame.getRootPane().putClientProperty(PROPERTY_WINDOW_MODIFIED, Boolean.FALSE); menuItemStatusChanged(XJMainMenuBar.MI_SAVE); } }
public void setDirty() { if (!XJApplication.shared().supportsPersistence()) return; // Use dirty member to speed up if (!dirty) { dirty = true; jFrame.getRootPane().putClientProperty(PROPERTY_WINDOW_MODIFIED, Boolean.TRUE); menuItemStatusChanged(XJMainMenuBar.MI_SAVE); } }
private void initMinFrame() { minFrame = new JFrame("Sikuli Test"); minFrame.setAlwaysOnTop(true); minFrame.setSize(255, 85); minFrame.getRootPane().putClientProperty("Window.alpha", new Float(0.7f)); /* Container con = minFrame.getContentPane(); con.add(minPane); minFrame.doLayout(); minFrame.setVisible(true); */ }
private static JPanel createPanel(JFrame frame) { JPanel panel = new JPanel(); JButton button = new JButton("Button"); JButton button2 = new JButton("Button 2"); JButton button3 = new JButton("Button 3"); JRootPane root = frame.getRootPane(); root.setDefaultButton(button); panel.add(button); panel.add(button2); panel.add(button3); return panel; }
public SwingUpdaterUI(String oldBuildDesc, String newBuildDesc, InstallOperation operation) { myOperation = operation; myProcessTitle = new JLabel(" "); myProcessProgress = new JProgressBar(0, 100); myProcessStatus = new JLabel(" "); myCancelButton = new JButton(CANCEL_BUTTON_TITLE); myConsole = new JTextArea(); myConsole.setLineWrap(true); myConsole.setWrapStyleWord(true); myConsole.setCaretPosition(myConsole.getText().length()); myConsole.setTabSize(1); myConsolePane = new JPanel(new BorderLayout()); myConsolePane.add(new JScrollPane(myConsole)); myConsolePane.setBorder(BUTTONS_BORDER); myConsolePane.setVisible(false); myCancelButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { doCancel(); } }); myFrame = new JFrame(); myFrame.setTitle(TITLE); myFrame.setLayout(new BorderLayout()); myFrame.getRootPane().setBorder(FRAME_BORDER); myFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); myFrame.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { doCancel(); } }); JPanel processPanel = new JPanel(); processPanel.setLayout(new BoxLayout(processPanel, BoxLayout.Y_AXIS)); processPanel.add(myProcessTitle); processPanel.add(myProcessProgress); processPanel.add(myProcessStatus); processPanel.add(myConsolePane); for (Component each : processPanel.getComponents()) { ((JComponent) each).setAlignmentX(Component.LEFT_ALIGNMENT); } JPanel buttonsPanel = new JPanel(); buttonsPanel.setBorder(BUTTONS_BORDER); buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS)); buttonsPanel.add(Box.createHorizontalGlue()); buttonsPanel.add(myCancelButton); myProcessTitle.setText("<html>Updating " + oldBuildDesc + " to " + newBuildDesc + "..."); myFrame.add(processPanel, BorderLayout.CENTER); myFrame.add(buttonsPanel, BorderLayout.SOUTH); myFrame.setMinimumSize(new Dimension(500, 50)); myFrame.pack(); myFrame.setLocationRelativeTo(null); myFrame.setVisible(true); myQueue.add( new UpdateRequest() { @Override public void perform() { doPerform(); } }); startRequestDispatching(); }
public void createControls() { // Create all Swing components here JFrame.setDefaultLookAndFeelDecorated(true); controlFrame = new JFrame("Control"); controlFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); controlFrame.setSize(new Dimension(100, 80)); controlPanel = new JPanel(new GridLayout(1, 2)); menuBar = new JMenuBar(); menu = new JMenu("DJ Control"); startMenuItem = new JMenuItem("Start"); menu.add(startMenuItem); startMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { controller.start(); // disableStartMenuItem(); // enableStopMenuItem(); } }); stopMenuItem = new JMenuItem("Stop"); menu.add(stopMenuItem); stopMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { controller.stop(); // enableStartMenuItem(); // disableStopMenuItem(); } }); JMenuItem exit = new JMenuItem("Quit"); exit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); menu.add(exit); menuBar.add(menu); controlFrame.setJMenuBar(menuBar); bpmTextField = new JTextField(2); bpmLabel = new JLabel("Enter BPM:", SwingConstants.RIGHT); setBPMButton = new JButton("Set"); setBPMButton.setSize(new Dimension(10, 40)); increaseBPMButton = new JButton(">>"); decreaseBPMButton = new JButton("<<"); setBPMButton.addActionListener(this); increaseBPMButton.addActionListener(this); decreaseBPMButton.addActionListener(this); JPanel buttonPanel = new JPanel(new GridLayout(1, 2)); buttonPanel.add(decreaseBPMButton); buttonPanel.add(increaseBPMButton); JPanel enterPanel = new JPanel(new GridLayout(1, 2)); enterPanel.add(bpmLabel); enterPanel.add(bpmTextField); JPanel insideControlPanel = new JPanel(new GridLayout(3, 1)); insideControlPanel.add(enterPanel); insideControlPanel.add(setBPMButton); insideControlPanel.add(buttonPanel); controlPanel.add(insideControlPanel); bpmLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); bpmOutputLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); controlFrame.getRootPane().setDefaultButton(setBPMButton); controlFrame.getContentPane().add(controlPanel, BorderLayout.CENTER); controlFrame.pack(); controlFrame.setVisible(true); }
public static void main() { // Main frame = new JFrame("Java Playground"); frame.setSize(640, 480); // Make sure the divider is properly resized frame.addComponentListener( new ComponentAdapter() { public void componentResized(ComponentEvent c) { splitter.setDividerLocation(.8); } }); // Make sure the JVM is reset on close frame.addWindowListener( new WindowAdapter() { public void windowClosed(WindowEvent w) { new FrameAction().kill(); } }); // Setting up the keybinding // Ctrl+k or Cmd+k -> compile bind(KeyEvent.VK_K); // Ctrl+e or Cmd+e -> console bind(KeyEvent.VK_E); // Save, New file, Open file, Print. // Currently UNUSED until I figure out how normal java files and playground files will // interface. bind(KeyEvent.VK_S); bind(KeyEvent.VK_N); bind(KeyEvent.VK_O); bind(KeyEvent.VK_P); // Binds the keys to the action defined in the FrameAction class. frame.getRootPane().getActionMap().put("console", new FrameAction()); // The main panel for typing code in. text = new JTextPane(); textScroll = new JScrollPane(text); textScroll.setBorder(null); textScroll.setPreferredSize(new Dimension(640, 480)); // Document with syntax highlighting. Currently unfinished. doc = text.getStyledDocument(); doc.addDocumentListener( new DocumentListener() { public void changedUpdate(DocumentEvent d) {} public void insertUpdate(DocumentEvent d) {} public void removeUpdate(DocumentEvent d) {} }); ((AbstractDocument) doc).setDocumentFilter(new NewLineFilter()); // The output log; a combination compiler warning/error/runtime error/output log. outputText = new JTextPane(); outputScroll = new JScrollPane(outputText); outputScroll.setBorder(null); // "Constant" for the error font error = new SimpleAttributeSet(); error.addAttribute(StyleConstants.CharacterConstants.Italic, Boolean.TRUE); error.addAttribute(StyleConstants.Foreground, Color.RED); // "Constant" for the warning message font warning = new SimpleAttributeSet(); warning.addAttribute(StyleConstants.CharacterConstants.Italic, Boolean.TRUE); warning.addAttribute(StyleConstants.Foreground, Color.PINK); // "Constant" for the debugger error font progErr = new SimpleAttributeSet(); progErr.addAttribute(StyleConstants.Foreground, Color.BLUE); // Print streams to redirect System.out and System.err. out = new TextOutputStream(outputText, null); err = new TextOutputStream(outputText, error); System.setOut(new PrintStream(out)); System.setErr(new PrintStream(err)); // Sets up the output log outputText.setEditable(false); outputScroll.setVisible(true); // File input/output setup chooser = new JFileChooser(); // Setting up miscellaneous stuff compiler = ToolProvider.getSystemJavaCompiler(); JVMrunning = false; redirectErr = null; redirectOut = null; redirectIn = null; // Sets up the splitter pane and opens the program up splitter = new JSplitPane(JSplitPane.VERTICAL_SPLIT, textScroll, outputScroll); consoleDisplayed = false; splitter.remove(outputScroll); // Initially hides terminal until it is needed splitter.setOneTouchExpandable(true); frame.add(splitter); frame.setVisible(true); // Sets the divider to the proper one, for debugging // splitter.setDividerLocation(.8); }
void createFrame() { /* see Preferences.java */ int GUI_BIG = 13; int GUI_BETWEEN = 10; int GUI_SMALL = 6; int FIELD_SIZE = 30; int left = GUI_BIG; int top = GUI_BIG; int right = 0; Dimension d; frame = new JFrame("Directives Editor"); Container pane = frame.getContentPane(); pane.setLayout(null); JLabel label = new JLabel("Click here to read about directives."); label.addMouseListener( new MouseListener() { public void mouseClicked(MouseEvent e) { Base.openURL("http://processingjs.org/reference/pjs%20directive"); } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} }); pane.add(label); d = label.getPreferredSize(); label.setBounds(left, top, d.width, d.height); top += d.height + GUI_BETWEEN + GUI_BETWEEN; // CRISP crispBox = new JCheckBox("\"crisp\": disable antialiasing for line(), triangle() and rect()"); pane.add(crispBox); d = crispBox.getPreferredSize(); crispBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; // FONTS label = new JLabel("\"font\": to load (comma separated)"); pane.add(label); d = label.getPreferredSize(); label.setBounds(left, top, d.width, d.height); top += d.height + GUI_SMALL; fontField = new JTextField(FIELD_SIZE); pane.add(fontField); d = fontField.getPreferredSize(); fontField.setBounds(left, top, d.width, d.height); JButton button = new JButton("scan"); button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { handleScanFonts(); } }); pane.add(button); Dimension d2 = button.getPreferredSize(); button.setBounds(left + d.width + GUI_SMALL, top, d2.width, d2.height); right = Math.max(right, left + d.width + GUI_SMALL + d2.width); top += d.height + GUI_BETWEEN; // GLOBAL_KEY_EVENTS globalKeyEventsBox = new JCheckBox("\"globalKeyEvents\": receive global key events"); pane.add(globalKeyEventsBox); d = globalKeyEventsBox.getPreferredSize(); globalKeyEventsBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; // PAUSE_ON_BLUR pauseOnBlurBox = new JCheckBox("\"pauseOnBlur\": pause if applet loses focus"); pane.add(pauseOnBlurBox); d = pauseOnBlurBox.getPreferredSize(); pauseOnBlurBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; // PRELOAD images label = new JLabel("\"preload\": images (comma separated)"); pane.add(label); d = label.getPreferredSize(); label.setBounds(left, top, d.width, d.height); top += d.height + GUI_SMALL; preloadField = new JTextField(FIELD_SIZE); pane.add(preloadField); d = preloadField.getPreferredSize(); preloadField.setBounds(left, top, d.width, d.height); button = new JButton("scan"); button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { handleScanImages(); } }); pane.add(button); d2 = button.getPreferredSize(); button.setBounds(left + d.width + GUI_SMALL, top, d2.width, d2.height); right = Math.max(right, left + d.width + GUI_SMALL + d2.width); top += d.height + GUI_BETWEEN; // TRANSPARENT /*transparentBox = new JCheckBox("\"transparent\": set applet background to be transparent"); pane.add(transparentBox); d = transparentBox.getPreferredSize(); transparentBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN;*/ // APPLY / OK button = new JButton("OK"); button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { applyDirectives(); hide(); } }); pane.add(button); d2 = button.getPreferredSize(); int BUTTON_HEIGHT = d2.height; int BUTTON_WIDTH = 80; int h = right - (BUTTON_WIDTH + GUI_SMALL + BUTTON_WIDTH); button.setBounds(h, top, BUTTON_WIDTH, BUTTON_HEIGHT); h += BUTTON_WIDTH + GUI_SMALL; button = new JButton("Cancel"); button.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { hide(); } }); pane.add(button); button.setBounds(h, top, BUTTON_WIDTH, BUTTON_HEIGHT); top += BUTTON_HEIGHT + GUI_BETWEEN; // frame.getContentPane().add(box); frame.pack(); Insets insets = frame.getInsets(); frame.setSize( right + GUI_BIG + insets.left + insets.right, top + GUI_SMALL + insets.top + insets.bottom); // frame.setResizable(false); frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { frame.setVisible(false); } }); Toolkit.registerWindowCloseKeys( frame.getRootPane(), new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { frame.setVisible(false); } }); Toolkit.setIcon(frame); }
public JRootPane getRootPane() { return jFrame.getRootPane(); }
public Preferences() { // setup dialog for the prefs //dialog = new JDialog(editor, "Preferences", true); dialog = new JFrame(_("Preferences")); dialog.setResizable(false); Container pain = dialog.getContentPane(); pain.setLayout(null); int top = GUI_BIG; int left = GUI_BIG; int right = 0; JLabel label; JButton button; //, button2; //JComboBox combo; Dimension d, d2; //, d3; int h, vmax; // Sketchbook location: // [...............................] [ Browse ] label = new JLabel(_("Sketchbook location:")); pain.add(label); d = label.getPreferredSize(); label.setBounds(left, top, d.width, d.height); top += d.height; // + GUI_SMALL; sketchbookLocationField = new JTextField(40); pain.add(sketchbookLocationField); d = sketchbookLocationField.getPreferredSize(); button = new JButton(PROMPT_BROWSE); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { File dflt = new File(sketchbookLocationField.getText()); File file = Base.selectFolder(_("Select new sketchbook location"), dflt, dialog); if (file != null) { sketchbookLocationField.setText(file.getAbsolutePath()); } } }); pain.add(button); d2 = button.getPreferredSize(); // take max height of all components to vertically align em vmax = Math.max(d.height, d2.height); sketchbookLocationField.setBounds(left, top + (vmax-d.height)/2, d.width, d.height); h = left + d.width + GUI_SMALL; button.setBounds(h, top + (vmax-d2.height)/2, d2.width, d2.height); right = Math.max(right, h + d2.width + GUI_BIG); top += vmax + GUI_BETWEEN; // Preferred language: [ ] (requires restart of Arduino) Container box = Box.createHorizontalBox(); label = new JLabel(_("Editor language: ")); box.add(label); comboLanguage = new JComboBox(languages); comboLanguage.setSelectedIndex((Arrays.asList(languagesISO)).indexOf(Preferences.get("editor.languages.current"))); box.add(comboLanguage); label = new JLabel(_(" (requires restart of Arduino)")); box.add(label); pain.add(box); d = box.getPreferredSize(); box.setForeground(Color.gray); box.setBounds(left, top, d.width, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; // Editor font size [ ] box = Box.createHorizontalBox(); label = new JLabel(_("Editor font size: ")); box.add(label); fontSizeField = new JTextField(4); box.add(fontSizeField); label = new JLabel(_(" (requires restart of Arduino)")); box.add(label); pain.add(box); d = box.getPreferredSize(); box.setBounds(left, top, d.width, d.height); Font editorFont = Preferences.getFont("editor.font"); fontSizeField.setText(String.valueOf(editorFont.getSize())); top += d.height + GUI_BETWEEN; // Show verbose output during: [ ] compilation [ ] upload box = Box.createHorizontalBox(); label = new JLabel(_("Show verbose output during: ")); box.add(label); verboseCompilationBox = new JCheckBox(_("compilation ")); box.add(verboseCompilationBox); verboseUploadBox = new JCheckBox(_("upload")); box.add(verboseUploadBox); pain.add(box); d = box.getPreferredSize(); box.setBounds(left, top, d.width, d.height); top += d.height + GUI_BETWEEN; // [ ] Verify code after upload verifyUploadBox = new JCheckBox(_("Verify code after upload")); pain.add(verifyUploadBox); d = verifyUploadBox.getPreferredSize(); verifyUploadBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; // [ ] Use external editor externalEditorBox = new JCheckBox(_("Use external editor")); pain.add(externalEditorBox); d = externalEditorBox.getPreferredSize(); externalEditorBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; // [ ] Check for updates on startup checkUpdatesBox = new JCheckBox(_("Check for updates on startup")); pain.add(checkUpdatesBox); d = checkUpdatesBox.getPreferredSize(); checkUpdatesBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; // [ ] Update sketch files to new extension on save (.pde -> .ino) updateExtensionBox = new JCheckBox(_("Update sketch files to new extension on save (.pde -> .ino)")); pain.add(updateExtensionBox); d = updateExtensionBox.getPreferredSize(); updateExtensionBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; domainPortField= new JTextField(); domainPortField.setColumns(30); Box domainBox = Box.createHorizontalBox(); domainBox.add(new JLabel("Tftp upload Domain:")); domainBox.add(domainPortField); pain.add(domainBox); d = domainBox.getPreferredSize(); domainBox.setBounds(left, top, d.width, d.height); top += d.height + GUI_BETWEEN; autoResetPortField= new JTextField(); autoResetPortField.setColumns(8); Box resetBox = Box.createHorizontalBox(); resetBox.add(new JLabel("Auto Reset Port:")); resetBox.add(autoResetPortField); pain.add(resetBox); d = resetBox.getPreferredSize(); resetBox.setBounds(left, top, d.width, d.height); top += d.height + GUI_BETWEEN; tftpPassField = new JTextField(); tftpPassField.setColumns(30); Box tftpBox = Box.createHorizontalBox(); tftpBox.add(new JLabel("Tftp Secret Password:"******"Automatically associate .ino files with Arduino")); pain.add(autoAssociateBox); d = autoAssociateBox.getPreferredSize(); autoAssociateBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; } // More preferences are in the ... label = new JLabel(_("More preferences can be edited directly in the file")); pain.add(label); d = label.getPreferredSize(); label.setForeground(Color.gray); label.setBounds(left, top, d.width, d.height); right = Math.max(right, left + d.width); top += d.height; // + GUI_SMALL; label = new JLabel(preferencesFile.getAbsolutePath()); final JLabel clickable = label; label.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { Base.openFolder(Base.getSettingsFolder()); } public void mouseEntered(MouseEvent e) { clickable.setForeground(new Color(0, 0, 140)); } public void mouseExited(MouseEvent e) { clickable.setForeground(Color.BLACK); } }); pain.add(label); d = label.getPreferredSize(); label.setBounds(left, top, d.width, d.height); right = Math.max(right, left + d.width); top += d.height; label = new JLabel(_("(edit only when Arduino is not running)")); pain.add(label); d = label.getPreferredSize(); label.setForeground(Color.gray); label.setBounds(left, top, d.width, d.height); right = Math.max(right, left + d.width); top += d.height; // + GUI_SMALL; // [ OK ] [ Cancel ] maybe these should be next to the message? button = new JButton(PROMPT_OK); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { applyFrame(); disposeFrame(); } }); pain.add(button); d2 = button.getPreferredSize(); BUTTON_HEIGHT = d2.height; h = right - (BUTTON_WIDTH + GUI_SMALL + BUTTON_WIDTH); button.setBounds(h, top, BUTTON_WIDTH, BUTTON_HEIGHT); h += BUTTON_WIDTH + GUI_SMALL; button = new JButton(PROMPT_CANCEL); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { disposeFrame(); } }); pain.add(button); button.setBounds(h, top, BUTTON_WIDTH, BUTTON_HEIGHT); top += BUTTON_HEIGHT + GUI_BETWEEN; // finish up wide = right + GUI_BIG; high = top + GUI_SMALL; // closing the window is same as hitting cancel button dialog.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { disposeFrame(); } }); ActionListener disposer = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { disposeFrame(); } }; Base.registerWindowCloseKeys(dialog.getRootPane(), disposer); Base.setIcon(dialog); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); dialog.setLocation((screen.width - wide) / 2, (screen.height - high) / 2); dialog.pack(); // get insets Insets insets = dialog.getInsets(); dialog.setSize(wide + insets.left + insets.right, high + insets.top + insets.bottom); // handle window closing commands for ctrl/cmd-W or hitting ESC. pain.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { //System.out.println(e); KeyStroke wc = Editor.WINDOW_CLOSE_KEYSTROKE; if ((e.getKeyCode() == KeyEvent.VK_ESCAPE) || (KeyStroke.getKeyStrokeForEvent(e).equals(wc))) { disposeFrame(); } } }); }