程序运行时不显示任何内容

时间:2011-11-23 13:35:35

标签: java swing

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

我在命令提示符下键入java Teqscene,等待几秒钟,然后显示输入新命令的行。该程序编译精细和新的摆动,所以我不知道iv错过了什么?任何人都可以告诉这个程序不起作用吗?

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()
    {

    }
}

3 个答案:

答案 0 :(得分:3)

public void Teqscene() 
{
    createGUI();
}

将此更改为

public Teqscene() 
{
    createGUI();
}

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

答案 1 :(得分:3)

我猜你所拥有的“void”函数是一个构造函数。确保在构造函数中没有指定返回类型。

public static void main(String args[])
{
    new Teqscene();
}
public void Teqscene() //no return type for a constructor.
{
    createGUI();
}

或者你可以在main方法中调用函数(如果它本来是一个函数,即使我不建议这样命名,因为它很混乱):

 new Teqscene().Teqscene();

答案 2 :(得分:3)

public void Teqscene()

应该替换为

public Teqscene()

否则默认构造函数由java自动生成,您的方法不会被调用。