나는 내 프로그램을위한 GUI를 설정하려고하고 있으며 대부분 작동하고있다. 그러나, 나는 스캐너의 nextLine()과 같이 작동하는 메서드를 만들 수 있기를 원합니다. 내 JTextField에서 입력을 기다린 다음 반환합니다. this question은 내 것과 매우 비슷하지만 사용자의 입력을 기다리지 않았던 것 같습니다.스캐너와 같은 JTextField 내용 검색
package util;
import java.awt.Font;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import com.jgoodies.forms.factories.DefaultComponentFactory;
public class Gui {
public JFrame frame;
private JTextField textField;
private final JLabel lblVector = DefaultComponentFactory.getInstance().createTitle("Please type commands below.");
private JScrollPane scrollPane;
private JTextArea textArea;
/**
* Create the application.
*/
public Gui() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
public void print(String text){
textArea.append(text+"\n");
}
public String getInput()
{
String input = textField.getText();
textField.setCaretPosition(0);
return input;
}
private void initialize() {
frame = new JFrame("Vector");
frame.setBounds(100, 100, 720, 720);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textField = new JTextField();
frame.getContentPane().add(textField, BorderLayout.SOUTH);
textField.setColumns(10);
frame.getContentPane().add(lblVector, BorderLayout.NORTH);
scrollPane = new JScrollPane();
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
textArea = new JTextArea();
textArea.setFont(new Font("Monospaced", Font.PLAIN, 15));
textArea.setEditable(false);
scrollPane.setViewportView(textArea);
}
}
내가 그렇게처럼 호출 할 수 싶습니다 : 여기 내 GUI의 현재 코드
String menus = gui.getInput();
또는은; 이미 gui 변수를 새로운 Gui()로 설정했습니다.
필자가 검색 한 결과, 아마도 DocumentListener 또는 ActionListener 중 하나 또는 둘 모두와 관련이 있습니다.
감사합니다. 그러나이 이벤트가 actionPerformed()에서 시작되어 내 함수에서 반환 할 수 없다는 것을 의미하지는 않습니까? 내 코드에서 완전히 별개의 파일에서이 함수를 호출합니다. – user1796160
@ user1796160 : [java.beans.EventHandler] (http://docs.oracle.com/)를 사용하는 [접근] (https://www.dropbox.com/s/3cso39hh1efpcls/Skeleton1.java)을 시도 할 수 있습니다. javase/7/docs/api/java/beans/EventHandler.html), 같은 thingy와 함께, 귀하의 말한 기능, 인수로 ActionEvent'을 가져와야하고 공개 (내가 추측)이 작동하도록해야합니다. –
@nIcEcOw 나는 다른 파일에서 실제로 그것을 어떻게 호출 할까? – user1796160