Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用for循环在JLabel中显示更改的文本 公共类用户接口{ OpenFile of=新的OpenFile(); JFrame jf=新的JFrame(“文件管理器”); JButton jb1=新JButton(“打开文件”); JLabel jl1=新的JLabel(“此处显示建议”); JLabel jl2=新的JLabel(); JList列表; 公共void build(){ DefaultListModel str=新的DefaultListModel(); 对于(int i=0;i_Java_Swing_Jlabel - Fatal编程技术网

Java 如何使用for循环在JLabel中显示更改的文本 公共类用户接口{ OpenFile of=新的OpenFile(); JFrame jf=新的JFrame(“文件管理器”); JButton jb1=新JButton(“打开文件”); JLabel jl1=新的JLabel(“此处显示建议”); JLabel jl2=新的JLabel(); JList列表; 公共void build(){ DefaultListModel str=新的DefaultListModel(); 对于(int i=0;i

Java 如何使用for循环在JLabel中显示更改的文本 公共类用户接口{ OpenFile of=新的OpenFile(); JFrame jf=新的JFrame(“文件管理器”); JButton jb1=新JButton(“打开文件”); JLabel jl1=新的JLabel(“此处显示建议”); JLabel jl2=新的JLabel(); JList列表; 公共void build(){ DefaultListModel str=新的DefaultListModel(); 对于(int i=0;i,java,swing,jlabel,Java,Swing,Jlabel,for循环中出现问题,仅将最后一个“加载…”文本设置为JLabel 我希望它进入循环并打印100次。可能是循环在swing应用程序启动之前结束。有什么解决办法吗 有什么解决办法吗 这段代码工作得很完美,但这里的问题是当循环执行时,它是在眨眼之间完成的 在本例中,您最好的朋友是类javax.swing.Timer 这个例子将向你展示如何使用它,希望能解决你的问题, 计时器有自己的共享线程,因此您不必担心它会在不挂起ui或阻塞代码的情况下运行 public class UserInterface {

for循环中出现问题,仅将最后一个“加载…”文本设置为JLabel 我希望它进入循环并打印100次。可能是循环在swing应用程序启动之前结束。有什么解决办法吗

有什么解决办法吗

这段代码工作得很完美,但这里的问题是当循环执行时,它是在眨眼之间完成的

在本例中,您最好的朋友是类
javax.swing.Timer

这个例子将向你展示如何使用它,希望能解决你的问题, 计时器有自己的共享
线程
,因此您不必担心它会在不挂起ui或阻塞代码的情况下运行

public class UserInterface {
    OpenFile of = new OpenFile();

    JFrame jf = new JFrame("File Manager");
    JButton jb1 = new JButton("Open File");
    JLabel jl1 = new JLabel("Recommendations appear here");
    JLabel jl2 = new JLabel();
    JList<String> list;

    public void build() {

        DefaultListModel<String> str = new DefaultListModel<String>();

        for (int i = 0; i < of.f.length; i++) {
            str.addElement(of.f[i].getAbsolutePath());
        }

        list = new JList<String>(str);

        Border b = BorderFactory.createLineBorder(Color.black, 2);
        Font f = new Font("Arial", Font.BOLD, 20);

        jb1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                of.OpenFileMethod(list.getSelectedValue());
            }
        });

        jl1.setFont(f);
        jl1.setBorder(b);
        list.setFont(f);
        jf.add(jl1).setBounds(30, 100, 300, 200);
        jf.add(list).setBounds(400, 100, 300, 300);
        jf.add(jb1).setBounds(250, 300, 100, 50);
        jf.setLayout(null);
        jf.setSize(800, 800);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        for (int i = 0; i < 100; i++) {
            jl1.setText("Loading.");
            jl1.setText("Loading...");
        }
    }
}
当时机成熟时(如你所愿),当你想让这一切停止时,打电话就行了

textTimer = new Timer (delay,new TimerAction ());
textTimer.start();
使计时器停止运行。 这里有一个链接,可以了解更多有关该主题的信息

有什么解决办法吗

这段代码工作得很完美,但这里的问题是当循环执行时,它是在眨眼之间完成的

在本例中,您最好的朋友是类
javax.swing.Timer

这个例子将向你展示如何使用它,希望能解决你的问题, 计时器有自己的共享
线程
,因此您不必担心它会在不挂起ui或阻塞代码的情况下运行

public class UserInterface {
    OpenFile of = new OpenFile();

    JFrame jf = new JFrame("File Manager");
    JButton jb1 = new JButton("Open File");
    JLabel jl1 = new JLabel("Recommendations appear here");
    JLabel jl2 = new JLabel();
    JList<String> list;

    public void build() {

        DefaultListModel<String> str = new DefaultListModel<String>();

        for (int i = 0; i < of.f.length; i++) {
            str.addElement(of.f[i].getAbsolutePath());
        }

        list = new JList<String>(str);

        Border b = BorderFactory.createLineBorder(Color.black, 2);
        Font f = new Font("Arial", Font.BOLD, 20);

        jb1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                of.OpenFileMethod(list.getSelectedValue());
            }
        });

        jl1.setFont(f);
        jl1.setBorder(b);
        list.setFont(f);
        jf.add(jl1).setBounds(30, 100, 300, 200);
        jf.add(list).setBounds(400, 100, 300, 300);
        jf.add(jb1).setBounds(250, 300, 100, 50);
        jf.setLayout(null);
        jf.setSize(800, 800);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        for (int i = 0; i < 100; i++) {
            jl1.setText("Loading.");
            jl1.setText("Loading...");
        }
    }
}
当时机成熟时(如你所愿),当你想让这一切停止时,打电话就行了

textTimer = new Timer (delay,new TimerAction ());
textTimer.start();
使计时器停止运行。 这里有一个链接,可以获取有关该主题的更多信息

(1+)您还可以阅读上的Swing教程中的部分以获取更多信息。为所有Swing基础知识保留一个指向教程的链接。(1+)您还可以阅读上Swing教程的部分以了解更多信息。为所有Swing基础知识保留一个指向教程的链接。