Java 程序运行时不显示任何内容
我复制了一个教程程序并做了一些修改,现在当我运行它时什么也没发生 我在命令提示符中键入javateqscene,它会等待几秒钟,然后显示输入新命令的行。这个程序编译得很好,我是swing新手,所以我不确定iv错过了什么?有人能告诉我这个程序为什么不起作用吗Java 程序运行时不显示任何内容,java,swing,Java,Swing,我复制了一个教程程序并做了一些修改,现在当我运行它时什么也没发生 我在命令提示符中键入javateqscene,它会等待几秒钟,然后显示输入新命令的行。这个程序编译得很好,我是swing新手,所以我不确定iv错过了什么?有人能告诉我这个程序为什么不起作用吗 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class Teqscene impl
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()
{
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.event.*;
公共类Teqscene实现ActionListener、ChangeListener
{
JFrame-appFrame;
JLabel[]标题=新JLabel[24];
JLabel-curScene;
JSlider[]滑块=新JSlider[16];
JButton scene1、scene2、scene3、scene4、保存、加载、连接、地址、写入;
GridBagConstraints[]GridBagConstraints=新的GridBagConstraints[60];
集装箱cPane;
公共静态void main(字符串参数[])
{
新的Teqscene();
}
公共无效TEQSENE()
{
createGUI();
}
public void createGUI()
{
/*创建框架,获取其内容窗格并设置布局*/
appFrame=新JFrame(“场景设置器”);
cPane=appFrame.getContentPane();
setLayout(新的GridBagLayout());
//在contentPane上排列组件,并为每个JButton设置操作侦听器
排列组件();
appFrame.pack();
appFrame.setVisible(true);
}
public void arrangeComponents()
{
对于(int i=0;i
将此更改为
public Teqscene()
{
createGUI();
}
这里的问题是在main方法中,只创建了一个对象。创建对象构造函数时会调用它。在您的程序中,只有默认构造函数存在
将此更改为
public Teqscene()
{
createGUI();
}
这里的问题是在main方法内部,只创建了一个对象。创建对象构造函数时会调用。在您的程序中,只有默认构造函数存在。我猜您的“void”函数应该是一个构造函数。请确保您没有在构造函数中指定返回类型
public static void main(String args[])
{
new Teqscene();
}
public void Teqscene() //no return type for a constructor.
{
createGUI();
}
或者您可以在main方法中调用该函数(如果它是一个函数,尽管我不建议以这种方式命名,因为它很容易混淆):
new Teqscene().Teqscene();
我猜你的“void”函数应该是一个构造函数。确保你没有在构造函数中指定返回类型
public static void main(String args[])
{
new Teqscene();
}
public void Teqscene() //no return type for a constructor.
{
createGUI();
}
或者您可以在main方法中调用该函数(如果它是一个函数,尽管我不建议以这种方式命名,因为它很容易混淆):
new Teqscene().Teqscene();
应该被替换为
public Teqscene()
否则,默认构造函数将由java自动生成,并且不会调用您的方法
应该被替换为
public Teqscene()
否则,默认构造函数将由java自动生成,并且不会调用您的方法