【问题标题】:JTextField text displayJTextField 文本显示
【发布时间】:2014-04-07 17:26:39
【问题描述】:

我正在尝试在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);
    }
}

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

【问题讨论】:

  • 让TextDisplay类实现ActionListener,并将该类设置为返回和下一步按钮的ActionListener。
  • NextBack 按钮中创建一个 ActionListener

标签: java swing jtextfield settext


【解决方案1】:

首先你需要给你的按钮添加一个ActionListener,然后添加从ArrayList获取值的逻辑。

例如:

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

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

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

【讨论】:

  • 谢谢.. 但我如何让它首先显示文本?
  • 你从哪里得到 setText?这是我需要写的方法吗?
  • 不,它在JTextField 类中的内置方法,它负责设置应在JTextField 中显示的文本。我建议你阅读任何关于 Swing 的基础书籍 :)
  • 因为我收到一个错误,即 javax.swing.text 中的方法 setText 无法应用于给定类型。原因:实际参数文本无法转换为 java.lang 字符串
  • 是的,因为 get 返回一个Text 对象,您需要从该Text 对象中获取文本,所以只需调用getText(),这将挽救您的生命,请参阅我的更新。
猜你喜欢
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 2011-06-30
  • 2018-11-14
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
相关资源
最近更新 更多