Creating Java dialogs

后端 未结 5 1796
梦如初夏
梦如初夏 2020-12-18 11:53

What would be the easiest way for creating a dialog:

  • in one window I\'m giving data for envelope addressing, also set font type from list of sizes
  • w
5条回答
  •  不思量自难忘°
    2020-12-18 12:38

    This should get you going.

    class TestDialog extends JDialog {
    
        private JButton okButton = new JButton(new AbstractAction("ok") {
            public void actionPerformed(ActionEvent e) {
                System.err.println("User clicked ok");
                // SHOW THE PREVIEW...
                setVisible(false);
            }
        });
        private JButton cancelButton = new JButton(new AbstractAction("cancel") {
            public void actionPerformed(ActionEvent e) {
                System.err.println("User clicked cancel");
                setVisible(false);
            }
        });
    
        private JTextField nameField = new JTextField(20);
        private JTextField surnameField = new JTextField();
        private JTextField addr1Field = new JTextField();
        private JTextField addr2Field = new JTextField();
        private JComboBox sizes = new JComboBox(new String[] { "small", "large" });
    
        public TestDialog(JFrame frame, boolean modal, String myMessage) {
            super(frame, "Envelope addressing", modal);
    
            JPanel mainPanel = new JPanel();
            mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
            getContentPane().add(mainPanel);
    
            JPanel addrPanel = new JPanel(new GridLayout(0, 1));
            addrPanel.setBorder(BorderFactory.createTitledBorder("Receiver"));
            addrPanel.add(new JLabel("Name"));
            addrPanel.add(nameField);
            addrPanel.add(new JLabel("Surname"));
            addrPanel.add(surnameField);
            addrPanel.add(new JLabel("Address 1"));
            addrPanel.add(addr1Field);
            addrPanel.add(new JLabel("Address 2"));
            addrPanel.add(addr2Field);
            mainPanel.add(addrPanel);
    
            mainPanel.add(new JLabel(" "));
    
            mainPanel.add(sizes);
            JPanel buttons = new JPanel(new FlowLayout());
            buttons.add(okButton);
            buttons.add(cancelButton);
    
            mainPanel.add(buttons);
    
            pack();
            setLocationRelativeTo(frame);
            setVisible(true);
        }
    
    
        public String getAddr1() {
            return addr1Field.getText();
        }
    
        // ...
    }
    

    Result:

    enter image description here

提交回复
热议问题