我想制作一个gui,在我点击一个按钮后,我可以粘贴一个包含很多行的文本并提交该文本。
我创建按钮的代码示例:
public class SimpleGui implements ActionListener {
JButton button;
SimpleGui g;
public static void main (String[] args) {
SimpleGui g = new SimpleGui();
g.go();
}
public void go(){
JFrame frame = new JFrame();
button = new JButton("Insert Player");
frame.getContentPane().add(button);
button.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
button.setText("Now paste the data! ");
}
}
现在我有button.setText("Now paste the data! ");
,我想要的是:
你能帮助我吗?
答案 0 :(得分:1)
虽然你的问题不清楚,但可能你在询问一个可以设置文本的组件。使用JTextArea
,如下所示:
JTextArea textarea = new JTextArea("The initial text");
your_container.add(textarea);
然后,只要您想从文本区域获取文本,请使用:
String data = textarea.getText();
如果在运行时你想将textarea设置为某些数据,你可以:
textarea.setText("Your data here");
编辑:
在OP添加代码后,我认为这是他想要实现的目标:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class SimpleGui implements ActionListener
{
JButton button;
SimpleGui g;
JTextArea textarea;
JFrame frame;
String data;
public static void main (String[] args)
{
SimpleGui g = new SimpleGui();
g.go();
}
public void go()
{
frame = new JFrame();
button = new JButton("Insert Player");
textarea = new JTextArea("Paste data here!");
frame.setLayout(new BorderLayout());
frame.getContentPane().add(button, BorderLayout.SOUTH);
button.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Insert Player"))
{
button.setText("Now paste the data!");
frame.getContentPane().add(textarea, BorderLayout.CENTER);
}
else if(e.getActionCommand().equals("Now paste the data!"))
{
data = textarea.getText();
System.out.println(data);
}
}
}
您的文字数据位于data
变量中。你可以随意使用它。我只是通过打印来证明它。