В моей приключенческой игре есть куча вложенных операторов if для вывода чего-либо на основе ввода, но мой JTextField получает только один вход и затем исчезает. Я хочу, чтобы JTextField принимал неограниченные входные данные и использовал .append, чтобы показать их в jtextarea. Я хочу, чтобы программа продолжала вводить пользовательские входы до тех пор, пока не закончится путь истории в операторах if. Если хотите получить входные данные от JTextField и поместить вывод в JTextArea и сохранить его там.Я создаю интерактивный роман Java, но мой JTextArea Disappears
import java.awt.Dimension;
import java.awt.Font;
import java.awt.KeyboardFocusManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.util.Scanner;
import java.io.Reader;
import javax.swing.*;
import javax.swing.text.BadLocationException;
/*JakeBarcelona
*Date:May 5, 2016
*Program Name:StoryTester.java
*Description:
*/
public class StoryTester extends JFrame
{
static JTextField input = new JTextField(30);
static JTextArea fields = new JTextArea(30,50);
static Story ARoom=new Story();
public static void main(String[] args) throws BadLocationException
{
JFrame frame = new JFrame();
String story=new String();
JLabel intro = new JLabel(story);
//Sets the JLabels font and color
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//puts a red x to close it
Story wow = new Story();
String introduction=wow.intro();
//creates array field for text editing
fields.insert(introduction, 0);
String name= fields.getText(0,30);
//creates new Panel
JPanel myPanel=new JPanel();
//creates label for text box
myPanel.setPreferredSize(new Dimension(600,600));
myPanel.add(fields);
myPanel.add(input);
//puts a scroll bar and cancel and ok button
JScrollPane scroll = new JScrollPane(fields, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
myPanel.add(scroll);
int result = JOptionPane.showConfirmDialog(null, myPanel, "Story", JOptionPane.OK_CANCEL_OPTION);
if(result==JOptionPane.OK_OPTION);
{
String jake = input.getText();
String need = ARoom.storyStatements(jake);
System.out.println(need);
fields.append(need);
}
}
}
ОК, теперь я запутался. Я просматриваю ваш код во второй раз, и я вижу, что myPanel добавлен в JOptionPane. Предполагается ли он отображаться в JOptionPane или он должен отображаться в главном графическом интерфейсе JFrame? –
Он должен отображаться в JOptionPane, я получаю входной сигнал от JTextField и отображаю текст в JTextArea. –
. Измените свой вопрос и четко изложите, насколько это возможно, именно то, что вы пытаетесь сделать. То, что должен сделать myPanel, должно ли оно оставаться в поле зрения и быть основным графическим интерфейсом, как оно относится к JFrame, что-нибудь, что поможет нам лучше понять вашу программу и вашу проблему. –