Как получить результаты терминала и установить JTextArea для чтения терминала?
Я недавно закончил графический интерфейс, где пользователь может вводить критерии и получать результаты, соответствующие указанным условиям. Программа работает в зависимости от результата, но у меня возникают проблемы с получением моего textField в моем графическом интерфейсе для чтения результатов моего окна терминала. Мой код для графического интерфейса выглядит следующим образом:
package project205;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class HouseListGUI extends JFrame
{
//GUI Components
HouseList availableHouses = new HouseList("src/houses.txt");
JLabel cLab = new JLabel("Criteria");
JLabel minLab = new JLabel("Min");
JLabel maxLab = new JLabel("Max");
JLabel pLab = new JLabel("Price");
JLabel aLab = new JLabel("Area");
JLabel bLab = new JLabel("Bedrooms");
JTextField pMin = new JTextField(10);
JTextField pMax = new JTextField(10);
JTextField aMin = new JTextField(10);
JTextField aMax = new JTextField(10);
JTextField bMin = new JTextField(10);
JTextField bMax = new JTextField(10);
JTextArea results = new JTextArea(20, 40);
JButton sButton = new JButton("Search");
JButton qButton = new JButton("Quit");
public HouseListGUI()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
setVisible(true);
Container c = getContentPane();
c.setLayout(new GridLayout(5,3,10,10));
c.add(cLab);
c.add(minLab);
c.add(maxLab);
c.add(pLab);
c.add(pMin);
c.add(pMax);
c.add(aLab);
c.add(aMin);
c.add(aMax);
c.add(bLab);
c.add(bMin);
c.add(bMax);
c.add(sButton);
c.add(results);
c.add(qButton);
sButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String pmn = pMin.getText();
String pmx = pMax.getText();
String amn = aMin.getText();
String amx = aMax.getText();
String bmn = bMin.getText();
String bmx = bMax.getText();
int pmn1 = Integer.parseInt(pmn);
int pmx1 = Integer.parseInt(pmx);
int amn1 = Integer.parseInt(amn);
int amx1 = Integer.parseInt(amx);
int bmn1 = Integer.parseInt(bmn);
int bmx1 = Integer.parseInt(bmx);
Criteria theCriteria = new Criteria(pmn1, pmx1, amn1, amx1, bmn1, bmx1);
availableHouses.printHouses(theCriteria);
results.setText("");
}
});
qButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
);
}
public static void main(String[] args)
{
//HouseList availableHouses = new HouseList("src/houses.txt");
HouseListGUI g1 = new HouseListGUI();
g1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g1.setSize(1000,500);
g1.show();
}
}
Хотелось бы получить результаты строки кода availableHouses.printHouses (theCriteria); который возвращает тип void для печати в результатах textArea
Я попытался использовать приведение типа, чтобы привести пустоту как строку и поместить ее в результаты, то есть:
results.setText((String)availableHouses.printHouses(theCriteria);
Но у Java этого нет.
TL; DR:
Как можно взять терминал, полученный в результате вызова метода типа void, и распечатать его как тип String в textArea в контексте графического интерфейса?
для дальнейшего уточнения:
мое окно терминала выглядит так:
и мой графический интерфейс выглядит так:
и я хочу, чтобы мой терминал был в среднем поле в последнем ряду.
Спасибо за любые советы / советы!