java - 使用 Java Swing,激活阅读器的按钮不会显示所需的标签?

标签 java eclipse swing bufferedreader

我正在从文本文件中读取长引用,因此所有标签均已设置,但按钮不会显示该内容的 JLabel。我可以显示系统打印,但标签不会出现,因此按钮似乎没问题。非常具体地说,引用是“克里斯·塔克版本的马丁·路德·金演讲的 html 格式文本文档。

这是我迄今为止尝试过的:

package MenuBoxes;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class quoteReader extends JFrame{
    private JFrame frame;
public quoteReader(){
    initUI();
}
public final void initUI(){ {
    String listArray[] = null;
    JButton click = new JButton("click me");
    click.setLocation(120,30);
    click.setSize(100,100);
    JPanel panel = new JPanel();
    panel.setLayout(null);
    panel.add(click);
    add(panel);
    setTitle("Quote Reader");
    setSize(500,400);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
click.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
        //nameLabel = name.getText();
        //use .= for comparing strings
        String[] listArray = new String [2];
        try{
            BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\Chrt\\workspace\\Finals\\Quotes.txt"));
            int index = 0;
            String line = "";
            while((line = br.readLine()) != null) {
              listArray[index] = line;
                index++;
                JLabel read = new JLabel(line);
                System.out.println(line);
                read.setLocation(120,90);
                read.setSize(300,200);
                read.setFont(new Font("Calibri",Font.BOLD,13));
                panel.add(read);
                add(panel);
                setVisible(true);
            }
            br.close();
            } catch (IOException ioe){
                System.out.println("Cannot read");
                System.exit(0);
            }
            }
    }
);

}}}

最佳答案

向标签添加文本后需要重新绘制。

this.repaint();

此外,根据您的代码,在将文本添加到 JLabel 之前,您不会使 JFrame 可见。你应该添加

setVisible(true);

到你的 initUI() 方法。

关于java - 使用 Java Swing,激活阅读器的按钮不会显示所需的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467780/

相关文章:

java - JMenuBar 使 JFrame "jump"

java - 我应该在哪里实现 jTable 中的代码(拖放)?

java - Web 项目下 ESAPI.properties 的正确位置

java - 如何在 Clojure 中从 Java 中声明的字段获取数组元素的类型?

Java arraylist - 检查在从列表生成随机整数时是否设置了 arraylist 索引中的两项?

Java 字符串不等于

eclipse - 我们在 Eclipse 中指定放置构建类的位置?

java - 梅文。为activiti添加maven仓库

java - 错误 : Uncaught error fetching image: java. lang.NullPointerException

java - 需要帮助 - Java If/Else