Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;

public class Main {
    public static void main(String[] args) {
        JDialog dialog;
        JList jlist;
        ActionListener otherListener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("current");
            }
        };
        JButton okButton = new JButton("OK");
        okButton.addActionListener(e -> close(true));
        JButton cancelButton = new JButton("Cancel");
        cancelButton.addActionListener(e -> close(false));
        jlist = new JList(new String[] { "A", "B", "C", "D", "E", "F", "G" });
        jlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        jlist.setVisibleRowCount(5);
        JScrollPane scroll = new JScrollPane(jlist);
        JPanel buttonsPanel = new JPanel(new FlowLayout());
        buttonsPanel.add(okButton);
        buttonsPanel.add(cancelButton);
        JPanel content = new JPanel(new BorderLayout());
        content.add(scroll, BorderLayout.CENTER);
        content.add(buttonsPanel, BorderLayout.SOUTH);
        dialog = new JDialog((Frame) null, true);
        dialog.setContentPane(content);
        dialog.pack();
        dialog.getRootPane().registerKeyboardAction(otherListener, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),
                JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);

        dialog.getRootPane().registerKeyboardAction(otherListener, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
                JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);

        dialog.getRootPane().getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "doSomething");
        dialog.getRootPane().getActionMap().put("doSomething", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        dialog.setVisible(true);
    }

    static void close(boolean commit) {
        if (commit) {
            System.out.println("Now saving...");
        } else {
            System.out.println("Now closing...");
            System.exit(0);
        }
    }
}