Я пытаюсь создать настольное приложение, которое откроет указанный URL.Как читать данные пользователя из JTextfield в другом классе Java
Я использую 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());
}
}
}
}
Я могу открыть указанный URL, если он указан внутри openbrowser.java, но я хочу, чтобы прочитать значение JTextField
Я создал в браузоре.ява.
Вы пытались использовать статические поля? Или пользовательский сеанс, где он может хранить нужную строку? – Gatusko
В браузере вашего класса вы объявили экземпляр класса textfield в основном методе, который делает его доступным для него. Поэтому объявляйте объекты TextField как переменные экземпляра класса browseropen, т. Е. Вне метода. Следовательно, вы можете легко получить к ним доступ в своем подклассе. –
См. Правки для ответа –