Reputation: 2542
I copied a tutorial program and made some modifications and now when i run it nothing happens.
I type java Teqscene into command prompt, it waits a few seconds and the shows the line for entering a new command. The program compiles fine and im new to swing so im not sure what iv missed ? can anyoun tell wht this program does not work ?
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()
{
}
}
Upvotes: 1
Views: 222
Reputation: 641
public void Teqscene()
{
createGUI();
}
Change this to
public Teqscene()
{
createGUI();
}
Here the problem is inside the main method only an object is created. When creating the object constructor is called. In your program only the default constructor exits.
Upvotes: 3
Reputation: 9307
public void Teqscene()
should be replace by
public Teqscene()
Otherwise the default constructor is generated by java automatically and your method won't be called.
Upvotes: 3
Reputation: 4324
I am guessing the "void" function you have is meant to be a constructor. Make sure you dont specify a return type in your constructors.
public static void main(String args[])
{
new Teqscene();
}
public void Teqscene() //no return type for a constructor.
{
createGUI();
}
Or you can call the function (if it was meant to be a function, even though i would not recommend naming it this way as it is confusing) in the main method:
new Teqscene().Teqscene();
Upvotes: 3