J'essaie de créer une application de bureau qui ouvrira une URL spécifiée. J'utilise Java pour créer l'application et voici mon code jusqu'à maintenant.Comment lire l'entrée utilisateur de JTextfield dans une autre classe Java
browseropen.java
public class browseropen {
public static void main(String[] args) {
JFrame frame = new JFrame("Desktop Browser Search"); // We create our initial app frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // next we are making sure our app stops running
JPanel panel = new JPanel(); // Our new application window
JLabel optext = new JLabel("Welcome Please Enter URL to Begin!"); // Our new window text
frame.setSize(400, 400); // Set Application Window Size
//pack();
// Now adding Text box
JTextField txtbox = new JTextField(10);
JButton gourl = new JButton("Go To URL"); // creating new button to activate browser function
frame.setVisible(true);
optext.setVisible(true);
frame.setLayout(new GridLayout(3,4,5,10));
panel.add(optext); // We are adding our objects to our app window
panel.add(txtbox);
panel.add(gourl);
frame.add(panel); // And finally we add our app panel to our frame
String geturl = txtbox.getText();
gourl.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//run client main
runClient();
}
public void runClient() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
String[] args1={"10"};
openbrowserurl.main(args1);
}
});
}
});
}
public void texturl() {
};
}
openbrowser.java
public class openbrowserurl extends browseropen {
public static void main(String[] args) {
Desktop desktop = Desktop.getDesktop();
String urlinput = "https://www.google.com";
if(!java.awt.Desktop.isDesktopSupported()) {
System.err.println("Desktop Not Supported");
System.exit(1);
}
if (args.length == 0) {
System.out.println("Usage: OpenURI [URI [URI ... ]]");
System.exit(0);
}
if(!desktop.isSupported(java.awt.Desktop.Action.BROWSE)) {
System.err.println("Desktop doesn't support the browse action (fatal)");
System.exit(1);
}
for (String arg : args) {
try {
java.net.URI uri = new java.net.URI(urlinput);
desktop.browse(uri);
}
catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
}
je peux ouvrir une URL spécifiée si elle est spécifiée dans la openbrowser.java, mais je veux lire la valeur du JTextField
J'ai créé dans browseropen.java.
Avez-vous essayé d'utiliser des champs statiques? Ou session utilisateur où il peut stocker la chaîne que vous voulez? – Gatusko
Dans votre navigateur de classe, vous avez déclaré l'instance de la classe textfield dans la méthode principale, ce qui rend la portée disponible. Donc déclarez les objets TextField en tant que variables d'instance de la classe browseropen, c'est-à-dire en dehors de la méthode. Par conséquent, vous pouvez facilement y accéder dans votre sous-classe. –
S'il vous plaît voir les modifications à répondre –