Cum se face fereastra PopUp în java (Programare, Java, Leagăn, Popup, Fereastră)

Carlo a intrebat.

În prezent, dezvolt o aplicație java.

Vreau să arăt o nouă fereastră care conține o zonă de text și un buton.

Aveți vreo idee?

Comentarii

  • Poate JOptionPane.showInputDialog(null, "This is the message", "This is the default text")? –  > Por fireshadow52.
  • Vă rugăm să marcați un răspuns pentru ca această întrebare să fie rezolvată. –  > Por Ungeheuer.
  • @Ungeheuer Nu poți să înveți noobs, ei nu înțeleg cuvintele care ies din gura ta. –  > Por NoName.
  • @NoName Cred că nu. E încă activ și el….ultimul văzut pe 6 martie. A trecut ceva timp, dar totuși. –  > Por Ungeheuer.
6 răspunsuri
COD3BOY

Același răspuns : JOptionpane cu un exemplu 🙂

package experiments;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class CreateDialogFromOptionPane {

    public static void main(final String[] args) {
        final JFrame parent = new JFrame();
        JButton button = new JButton();

        button.setText("Click me to show dialog!");
        parent.add(button);
        parent.pack();
        parent.setVisible(true);

        button.addActionListener(new java.awt.event.ActionListener() {
            @Override
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                String name = JOptionPane.showInputDialog(parent,
                        "What is your name?", null);
            }
        });
    }
}

kreynolds

Hmm a trecut ceva timp, dar din câte îmi amintesc…
Dacă doriți o fereastră personalizată, puteți face un nou cadru și să o faceți să apară la fel ca și în cazul ferestrei principale. Java are, de asemenea, o bibliotecă de dialoguri grozavă pe care o puteți verifica aici:

Cum se fac dialoguri

Care ar putea să vă ofere funcționalitatea pe care o căutați cu mult mai puțin efort.

Object[] possibilities = {"ham", "spam", "yam"};
String s = (String)JOptionPane.showInputDialog(
                    frame,
                    "Complete the sentence:
"
                    + ""Green eggs and..."",
                    "Customized Dialog",
                    JOptionPane.PLAIN_MESSAGE,
                    icon,
                    possibilities,
                    "ham");

//If a string was returned, say so.
if ((s != null) && (s.length() > 0)) {
    setLabel("Green eggs and... " + s + "!");
    return;
}

//If you're here, the return value was null/empty.
setLabel("Come on, finish the sentence!");

Dacă nu vă interesează să limitați opțiunile utilizatorului, puteți utiliza o formă a metodei showInputDialog care acceptă mai puține argumente sau puteți specifica null pentru matricea de obiecte. În aspectul Java, înlocuirea posibilităților cu null are ca rezultat o fereastră de dialog care are un câmp de text și care arată astfel:

Comentarii

  • Cred că vreau să fac noul Frame can u Show me how to do it thx btw ? –  > Por Carlo.
  • Exemplul pe care l-am pus mai sus este cât se poate de clar și concis pentru a vă arăta cum se face. Dacă doriți să îl personalizați dincolo de exemplu, aruncați o privire la Java Docs. –  > Por kreynolds.
mcfinnigan

JOptionPane este prietenul tău : http://www.javalobby.org/java/forums/t19012.html

maerics

Verifică Dialoguri Swing (axat în principal pe JOptionPane, după cum a menționat @mcfinnigan).

utilizator2845541
public class JSONPage {
    Logger log = Logger.getLogger("com.prodapt.autotest.gui.design.EditTestData");


    public static final JFrame JSONFrame = new JFrame();
    public final JPanel jPanel = new JPanel();

    JLabel IdLabel = new JLabel("JSON ID*");
    JLabel DataLabel = new JLabel("JSON Data*");
    JFormattedTextField JId = new JFormattedTextField("Auto Generated");
    JTextArea JData = new JTextArea();
    JButton Cancel = new JButton("Cancel");
    JButton Add = new JButton("Add");

    public void JsonPage() {

        JSONFrame.getContentPane().add(jPanel);
        JSONFrame.add(jPanel);
        JSONFrame.setSize(400, 250);
        JSONFrame.setResizable(false);
        JSONFrame.setVisible(false);
        JSONFrame.setTitle("Add JSON Data");
        JSONFrame.setLocationRelativeTo(null);
        jPanel.setLayout(null);

        JData.setWrapStyleWord(true);
        JId.setEditable(false);

        IdLabel.setBounds(20, 30, 120, 25);
        JId.setBounds(100, 30, 120, 25);
        DataLabel.setBounds(20, 60, 120, 25);
        JData.setBounds(100, 60, 250, 75);
        Cancel.setBounds(80, 170, 80, 30);
        Add.setBounds(280, 170, 50, 30);

        jPanel.add(IdLabel);
        jPanel.add(JId);
        jPanel.add(DataLabel);
        jPanel.add(JData);
        jPanel.add(Cancel);
        jPanel.add(Add);

        SwingUtilities.updateComponentTreeUI(JSONFrame);

        Cancel.addActionListener(new ActionListener() {
            @SuppressWarnings("deprecation")
            @Override
            public void actionPerformed(ActionEvent e) {
                JData.setText("");
                JSONFrame.hide();
                TestCasePage.testCaseFrame.show();
            }
        });

        Add.addActionListener(new ActionListener() {
            @SuppressWarnings("deprecation")
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    PreparedStatement pStatement = DAOHelper.getInstance()
                            .createJSON(
                                    ConnectionClass.getInstance()
                                            .getConnection());
                    pStatement.setString(1, null);
                    if (JData.getText().toString().isEmpty()) {
                        JOptionPane.showMessageDialog(JSONFrame,
                                "Must Enter JSON Path");
                    } else {
                        // System.out.println(eleSelectBy);
                        pStatement.setString(2, JData.getText());
                        pStatement.executeUpdate();
                        JOptionPane.showMessageDialog(JSONFrame, "!! Added !!");
                        log.info("JSON Path Added"+JData);
                        JData.setText("");
                        JSONFrame.hide();
                    }

                } catch (SQLException e1) {
                    JData.setText("");
                    log.info("Error in Adding JSON Path");
                    e1.printStackTrace();
                }
            }
        });
    }

}

Comentarii

  • hmm … un pic la limita răspunsului la întrebare, nu-i așa 😉 Oricum, a) vă rugăm să învățați convențiile de denumire din java și să le respectați b) nu faceți niciodată dimensionarea/localizarea manuală a componentelor, aceasta este sarcina exclusivă a unui LayoutManager adecvat c) updateComponentTree nu este necesar…  > Por kleopatra.
iAmLearning

Încercați să utilizați JOptionPane sau Swt Shell .