java - 程序运行时什么都不显示

标签 java swing

我复制了一个教程程序并做了一些修改,现在当我运行它时没有任何反应。

我在命令提示符中键入 java Teqscene,它等待几秒钟,然后显示用于输入新命令的行。该程序编译良好,我是 swing 的新手,所以我不确定我错过了什么?谁能告诉我这个程序为什么不起作用?

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

public class Teqscene implements ActionListener, ChangeListener
{
    JFrame appFrame;
    JLabel[] captions = new JLabel[24];
    JLabel curScene;
    JSlider[] sliders = new JSlider[16];
    JButton scene1, scene2, scene3, scene4, save, load, connect, address, write;    
    GridBagConstraints[] gridBagConstraints = new GridBagConstraints[60];
    Container cPane;
    public static void main(String args[])
    {
        new Teqscene();
    }
    public void Teqscene() 
    {
        createGUI();
    }
    public void createGUI()
    {
        /*Create a frame, get its contentpane and set layout*/
        appFrame = new JFrame("Scene setter");
        cPane = appFrame.getContentPane();
        cPane.setLayout(new GridBagLayout());
        //Arrange components on contentPane and set Action Listeners to each JButton
        arrangeComponents();
        appFrame.pack();
        appFrame.setVisible(true);
    }
    public void arrangeComponents() 
    {
        for(int i = 0; i<24; i++)
        {
            captions[i] = new JLabel("100%");
        }
        for(int i = 0; i<24; i++)
        {
            sliders[i] = new JSlider(JSlider.VERTICAL, 0, 15, 15);
            sliders[i].addChangeListener(this);
            sliders[i].setMajorTickSpacing(1);
            sliders[i].setPaintTicks(true);
        }

        scene1 = new JButton("Scene 1");
        scene2 = new JButton("Scene 2");
        scene3 = new JButton("Scene 3");
        scene4 = new JButton("Scene 4");
        save = new JButton("Save Scene");
        load = new JButton("Load data");
        connect = new JButton("Connect to LCU");
        address = new JButton("Set LCU IP address");
        write = new JButton("Write to LCU");

        scene1.addActionListener(this);
        scene2.addActionListener(this);
        scene3.addActionListener(this);
        scene4.addActionListener(this);
        save.addActionListener(this);       
        load.addActionListener(this);
        connect.addActionListener(this);
        address.addActionListener(this);
        write.addActionListener(this);      

        /*add all initialized components to the container*/
        gridBagConstraints[0] = new GridBagConstraints();
        gridBagConstraints[0].gridx = 0;
        gridBagConstraints[0].gridy = 0;
        gridBagConstraints[0].insets = new Insets(5, 5, 5, 5);
        cPane.add(scene1, gridBagConstraints[0]);

        gridBagConstraints[1] = new GridBagConstraints();
        gridBagConstraints[1].gridx = 1;
        gridBagConstraints[1].gridy = 0;
        gridBagConstraints[1].insets = new Insets(5, 5, 5, 5);
        cPane.add(scene2, gridBagConstraints[1]);

        gridBagConstraints[2] = new GridBagConstraints();
        gridBagConstraints[2].gridx = 2;
        gridBagConstraints[2].gridy = 0;
        gridBagConstraints[2].insets = new Insets(5, 5, 5, 5);
        cPane.add(scene3, gridBagConstraints[2]);

        gridBagConstraints[3] = new GridBagConstraints();
        gridBagConstraints[3].gridx = 3;
        gridBagConstraints[3].gridy = 0;
        gridBagConstraints[3].insets = new Insets(5, 5, 5, 5);
        cPane.add(scene4, gridBagConstraints[3]);

        gridBagConstraints[4] = new GridBagConstraints();
        gridBagConstraints[4].gridx = 4;
        gridBagConstraints[4].gridy = 0;
        gridBagConstraints[4].insets = new Insets(5, 5, 5, 5);
        cPane.add(curScene, gridBagConstraints[4]);

        for(int i=5; i<17; i++)
        {
            gridBagConstraints[i] = new GridBagConstraints();
            gridBagConstraints[i].gridx = i-5;
            gridBagConstraints[i].gridy = 1;
            gridBagConstraints[i].insets = new Insets(5, 5, 5, 5);
            cPane.add(sliders[i-5], gridBagConstraints[i]);         
        }

        for(int i=17; i<29; i++)
        {
            gridBagConstraints[i] = new GridBagConstraints();
            gridBagConstraints[i].gridx = i-17;
            gridBagConstraints[i].gridy = 2;
            gridBagConstraints[i].insets = new Insets(5, 5, 5, 5);
            cPane.add(captions[i-17], gridBagConstraints[i]);           
        }

        for(int i=29; i<41; i++)
        {
            gridBagConstraints[i] = new GridBagConstraints();
            gridBagConstraints[i].gridx = i-29;
            gridBagConstraints[i].gridy = 3;
            gridBagConstraints[i].insets = new Insets(5, 5, 5, 5);
            cPane.add(sliders[i-29], gridBagConstraints[i]);            
        }

        for(int i=41; i<53; i++)
        {
            gridBagConstraints[i] = new GridBagConstraints();
            gridBagConstraints[i].gridx = i-41;
            gridBagConstraints[i].gridy = 4;
            gridBagConstraints[i].insets = new Insets(5, 5, 5, 5);
            cPane.add(captions[i-41], gridBagConstraints[i]);           
        }

        gridBagConstraints[53] = new GridBagConstraints();
        gridBagConstraints[53].gridx = 0;
        gridBagConstraints[53].gridy = 5;
        gridBagConstraints[53].insets = new Insets(5, 5, 5, 5);
        cPane.add(save, gridBagConstraints[53]);

        gridBagConstraints[54] = new GridBagConstraints();
        gridBagConstraints[54].gridx = 1;
        gridBagConstraints[54].gridy = 5;
        gridBagConstraints[54].insets = new Insets(5, 5, 5, 5);
        cPane.add(load, gridBagConstraints[54]);

        gridBagConstraints[55] = new GridBagConstraints();
        gridBagConstraints[55].gridx = 2;
        gridBagConstraints[55].gridy = 5;
        gridBagConstraints[55].insets = new Insets(5, 5, 5, 5);
        cPane.add(connect, gridBagConstraints[55]);

        gridBagConstraints[56] = new GridBagConstraints();
        gridBagConstraints[56].gridx = 3;
        gridBagConstraints[56].gridy = 5;
        gridBagConstraints[56].insets = new Insets(5, 5, 5, 5);
        cPane.add(address, gridBagConstraints[56]);

        gridBagConstraints[57] = new GridBagConstraints();
        gridBagConstraints[57].gridx = 4;
        gridBagConstraints[57].gridy = 5;
        gridBagConstraints[57].insets = new Insets(5, 5, 5, 5);
        cPane.add(write, gridBagConstraints[57]);       
    }
    public void actionPerformed(ActionEvent e)
    {
        if (e.getSource() == save) {
            save();
        } else if (e.getSource() == load) {
            load();
        } else if (e.getSource() == connect) {
            connect();
        } else if (e.getSource() == address) {
            address();
        } else if (e.getSource() == write) {
            write();
        }
    }
    public void stateChanged(ChangeEvent e)
    {
        for(int i = 0; i<24; i++)
        {
            if(e.getSource() == sliders[i])
            {
                //sliders[i].setValue(e.getValue);
            }
        }
    }
    void save()
    {

    }
    void load()
    {

    }
    void connect()
    {

    }
    void address()
    {

    }
    void write()
    {

    }
}

最佳答案

public void Teqscene() 
{
    createGUI();
}

将此更改为

public Teqscene() 
{
    createGUI();
}

这里的问题是在 main 方法中只创建了一个对象。创建对象时调用构造函数。在您的程序中,只有默认构造函数退出。

关于java - 程序运行时什么都不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8243084/

相关文章:

java - Gradle 不提供子项目中的依赖项

java - 将 mp3 文件输入流转换为字节输出流的性能问题

java - 在 Swing 中单击按钮后删除按钮周围的线条

java - 无法弄清楚我的 DocumentFilter 出了什么问题

java - 如何在 Java 中合并 2 个字符串数组,但保留重复项?

java - Android Java - 警报管理器大部分工作完美,但有时会延迟

java - 为什么引用 String str1 = str + "test "与 String str3 = "checktest"不同

Java - 将形状添加到框架

java - Java 中单击按钮时计数器值不会更改

Java/Swing JViewport 鼠标拖动时跳转