进度条加载不起作用

鲨鱼

我试图在我的框架中运行进度条,但它不起作用。我试图在我的第二个 java 类中显示可见,但设置可见(真)将其显示为错误。希望你们能帮我解决我的问题/错误

在我的第二个 java 类中显示错误:“线程“main”中的异常 java.lang.Error:未解决的编译问题:该方法 setvisible(boolean) 未定义为类型 mgfinancewindow”

First java class: mgfinancewindow.java
package mgfinance;

import java.awt.EventQueue;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

public class mgfinancewindow {
private JFrame frame;
public JProgressBar progressBar;
public JLabel lblNewLabel;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                mgfinancewindow window = new mgfinancewindow();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the application.
 */
public mgfinancewindow() {
    initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {
    frame = new JFrame("MG Finances");
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.getContentPane().setLayout(null);

    JPanel panel = new JPanel();
    panel.setBounds(0, 0, 1362, 705);
    frame.getContentPane().add(panel);
    panel.setLayout(null);

    JPanel panel_1 = new JPanel();
    panel_1.setBackground(Color.DARK_GRAY);
    panel_1.setBounds(0, 646, 1362, 59);
    panel.add(panel_1);
    panel_1.setLayout(null);

    lblNewLabel = new JLabel("Loading...");
    lblNewLabel.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 16));
    lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
    lblNewLabel.setForeground(Color.WHITE);
    lblNewLabel.setBounds(1139, 0, 114, 34);
    panel_1.add(lblNewLabel);

    progressBar = new JProgressBar();
    progressBar.setBackground(new Color(0, 51, 51));
    progressBar.setBounds(0, 34, 1362, 14);
    panel_1.add(progressBar);

    JLabel lblMgFinance = new JLabel("MG Finance");
    lblMgFinance.setHorizontalAlignment(SwingConstants.CENTER);
    lblMgFinance.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 16));
    lblMgFinance.setForeground(Color.BLUE);
    lblMgFinance.setBounds(0, 11, 1362, 635);
    panel.add(lblMgFinance);


}

}

第二个java类:progressbar.java

package mgfinance;


public class progress {
public static void main(String[] args) throws InterruptedException{
    mgfinancewindow load = new mgfinancewindow();
    for(int i=0; i<=100; i++){
        Thread.sleep(150);
        load.setvisible(true);
        load.lblNewLabel.setText("Loading..."+ i);
        load.progressBar.setValue(i);
    }
}

}
斯泰菲

你的mgfinancewindow类不是一个JComponent支持setVisible()方法本身的。JFrame里面有setVisible方法。

在这样你写的代码,解决你的问题很快你必须写在frame.setVisible(true);在最后的(最后一条语句)initialize()的方法mgfinancewindow类和删除load.setvisible(true);main方法progress类:

public class progress {
    public static void main(String[] args) throws InterruptedException {
        mgfinancewindow load = new mgfinancewindow();
        for (int i = 0; i <= 100; i++) {
            Thread.sleep(150);
            //load.setvisible(true);
            load.lblNewLabel.setText("Loading..." + i);
            load.progressBar.setValue(i);
        }
    }
}

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingConstants;

public class mgfinancewindow {
    private JFrame frame;
    public JProgressBar progressBar;
    public JLabel lblNewLabel;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    mgfinancewindow window = new mgfinancewindow();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public mgfinancewindow() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame("MG Finances");
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.getContentPane().setLayout(null);

        JPanel panel = new JPanel();
        panel.setBounds(0, 0, 1362, 705);
        frame.getContentPane().add(panel);
        panel.setLayout(null);

        JPanel panel_1 = new JPanel();
        panel_1.setBackground(Color.DARK_GRAY);
        panel_1.setBounds(0, 646, 1362, 59);
        panel.add(panel_1);
        panel_1.setLayout(null);

        lblNewLabel = new JLabel("Loading...");
        lblNewLabel.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 16));
        lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
        lblNewLabel.setForeground(Color.WHITE);
        lblNewLabel.setBounds(1139, 0, 114, 34);
        panel_1.add(lblNewLabel);

        progressBar = new JProgressBar();
        progressBar.setBackground(new Color(0, 51, 51));
        progressBar.setBounds(0, 34, 1362, 14);
        panel_1.add(progressBar);

        JLabel lblMgFinance = new JLabel("MG Finance");
        lblMgFinance.setHorizontalAlignment(SwingConstants.CENTER);
        lblMgFinance.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 16));
        lblMgFinance.setForeground(Color.BLUE);
        lblMgFinance.setBounds(0, 11, 1362, 635);
        panel.add(lblMgFinance);

        frame.setVisible(true);
    }

}

但是

当你创建像一个组件mgfinancewindow它创建了一个JFrame内部的,大部分是更好的时代,以延长JFrame,然后你可以从它创建一个对象,并调用setVisible在程序或做的主要方法方法就可以了。最好不要setVisible在该组件内部调用,因为在另一个类中,有时您想创建和初始化 ,mgfinancewindow但不想立即使其可见。

另一个提示

根据Java 编码约定

  1. 您的类名必须遵循CamelCase样式。
  2. 变量名必须遵循驼峰式(小写首字母)风格。

您可能想在此处查看其他 Java 编码约定

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章