Je développe actuellement une application Java.Comment faire une fenêtre PopUp en Java
Je souhaite afficher une nouvelle fenêtre contenant une zone de texte et un bouton.
Avez-vous des idées?
Je développe actuellement une application Java.Comment faire une fenêtre PopUp en Java
Je souhaite afficher une nouvelle fenêtre contenant une zone de texte et un bouton.
Avez-vous des idées?
JOptionPane est votre ami: http://www.javalobby.org/java/forums/t19012.html
Découvrez Swing Dialogs (principalement axée sur JOptionPane, comme mentionné par @mcfinnigan).
Hmm cela fait un peu de temps mais d'après ce dont je me souviens ...
Si vous voulez une fenêtre personnalisée, vous pouvez simplement faire un nouveau cadre et le faire apparaître comme vous le feriez avec la fenêtre principale. Java possède également une bibliothèque grande boîte de dialogue que vous pouvez consulter ici:
Cela peut être en mesure de vous donner la fonctionnalité que vous recherchez avec beaucoup moins d'effort.
Object[] possibilities = {"ham", "spam", "yam"};
String s = (String)JOptionPane.showInputDialog(
frame,
"Complete the sentence:\n"
+ "\"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!");
Si vous ne se soucient pas de limiter les choix de l'utilisateur, vous pouvez utiliser une forme de la méthode showInputDialog qui prend moins d'arguments ou de spécifier null pour le tableau d'objets. Dans le regard Java et se sentent, en remplaçant nulle pour les résultats des possibilités dans une boîte de dialogue qui a un champ de texte et ressemble à ceci:
Je pense que je veux faire le nouveau cadre pouvez-vous me montrer comment le faire thx btw? – Carlo
L'exemple que je mets ci-dessus est à peu près aussi clair et concis que je peux obtenir pour vous montrer comment le faire. Si vous voulez le personnaliser au-delà de l'exemple, jetez un œil aux documents Java. – Prediluted
La même réponse: JOptionpane un exemple :)
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);
}
});
}
}
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();
}
}
});
}
}
hmm ... un peu à la limite de répondre à la question, n'est-ce pas ;-) En tout cas, a) s'il vous plaît apprendre les conventions de nommage java et s'y tenir b) ne jamais faire de dimensionnement/localisation des composants, c'est l'exclusivité tâche d'un LayoutManager approprié c) updateComponentTree n'est pas nécessaire – kleopatra
Essayez d'utiliser JOptionPane ou Swt Shell.
Peut-être 'JOptionPane.showInputDialog (null," Ceci est le message "," Ceci est le texte par défaut ")'? – fireshadow52
Veuillez marquer une réponse pour que cette question soit résolue. – Ungeheuer