JTextField文本显示

时间:2014-04-07 17:26:40

标签: java swing jtextfield settext

我正在尝试在JTextField中显示一些文字,文字应该从我使用ArrayList方法添加文字的addText中获取。我还希望能够使用按钮循环浏览ArrayList中的字符串。

Text上课

import java.util.ArrayList;
public class Text {
    private String text;

    public Text (String text)
    {
        this.text=text;
    }

    public String getText()
    {
        return text;
    }
}

TextDisplay上课

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.ArrayList;
public class TextDisplay
{
    private JFrame frame;
    private JTextField text;
    private JButton next;
    private JButton back;
    private ArrayList<Text> someText;
    public TextDisplay ()
    {
        makeFrame();
        someText= new ArrayList<Text>();
    }
    public void addText(String text)
    {
        Text sText = new Text(text);
        someText.add(sText);
    }
    private void makeFrame()
       {frame = new JFrame("text");    
        Container contentPane = frame.getContentPane();


        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(1, 0));

        text = new JTextField();
        text.setEditable(false);
        contentPane.add(text, BorderLayout.NORTH);   

        back = new JButton("back");
        panel.add(back);
        next = new JButton("next");
        panel.add(next);

        contentPane.add(panel,BorderLayout.WEST);
        frame.pack();

        frame.setVisible(true);
    }
}

有人可以向我解释或向我展示如何实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

首先,您需要在按钮中添加ActionListener,然后添加从ArrayList获取值的逻辑。

例如:

int index = -1;
next.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
            index++;
            text.setText(someText.get(index).getText());
        }
    });

然后你可以添加一个变量索引来获取ArrayList中的下一个元素,然后在获得元素时更新该变量。