выполнять методы из другого класса, когда кнопка нажата в jFrame

54
3

У меня есть класс с именем Parser, который получает некоторый вклад и выполняет некоторые вычисления и выводит результаты. У меня также есть jFrame, в котором есть текстовые поля. Я не понимаю, как запустить парсер и использовать входы из jFrame. Я не знаю, должен ли я реализовывать действие Listener в моем классе Parser? или мне следует импортировать все методы класса Parser в jFrame? должен ли я запустить метод в моей основной части Parser или использовать пробел void в классе jframe?

Вот мой класс Parser:

public class Parser{
public static List getXKeywords(String Url, int X, String html) throws Exception {
//somemethod with someoutput
}
public static void main(String[] args) throws Exception {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
SpyBiteDemo Sp = new SpyBiteDemo();
Sp.setVisible(true);
int X=Sp.getKeywordcount();
//this top line is not correct because it can only be done when the jframe jButton1 was clicked

}
});
}
}

и вот jFrame;

public class SpyBiteDemo extends javax.swing.JFrame {
/**
* Creates new form SpyBiteDemo
*/
public SpyBiteDemo() {
initComponents();

}
public String getKeywordcount()
{
return jTextField4.getText();
}
//some methods
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//get the input from the jframe
//feed it to the parser?? how???
String SeedUrl=jTextField1.getText();
Parser P=new Parser();
//I don't have access to methods
because they are static

}
}

здесь я пытаюсь получить переменную keywordcount из jFrame, которая является int X в методе getXKeywords.

спросил(а) 2016-04-24T22:02:00+03:00 4 года, 2 месяца назад
1
Решение
120

Я решил свою проблему с помощью этой ссылки

Я создал конструктор в классе парсеров, а также включил jframe в классе парсера, как показано ниже:

public class Parser {
SpyBiteDemo Sp=new SpyBiteDemo();
public Parser(SpyBiteDemo Sp)
{
this.Sp=Sp;
int X = Sp.getXKeywords();
//do whatever
}

и в действии, выполняемом классом jframe, я вызываю класс конструктора парсеров:

public class SpyBiteDemo extends javax.swing.JFrame {
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

Parser P=new Parser(this);

}
}

ответил(а) 2016-04-24T23:02:00+03:00 4 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема