Hi Everyone,
I am relatively new to
Java programming. I have to design a GUI. I have one sample code which is throwing errors and I am not able to get rid of them.Here is my code -
--------------------------------------------------------------------------
<code>
package sample;
import java.awt.*;
import java.awt.event.*;
public class CheckboxSample extends Frame implements ItemListener , WindowListener {
String msg="";
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
CheckboxSample cb=new CheckboxSample();
cb.setSize(new Dimension(600,400));
cb.setTitle("An example for Checkbox");
cb.setVisible(true);
Checkbox Win98=new Checkbox("Windows 98" , true);
Checkbox WinNT=new Checkbox("WindowsNT" );
Checkbox Solaris=new Checkbox("Solaris");
Checkbox mac=new Checkbox("mac");
cb.setLayout(new FlowLayout(FlowLayout.CENTER));
cb.add(Win98);
cb.add(WinNT);
cb.add(Solaris);
cb.add(mac);
Win98.addItemListener(cb);
WinNT.addItemListener(cb);
Solaris.addItemListener(cb);
mac.addItemListener(cb);
cb.addWindowListener(cb);
}
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub
repaint();
}
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
// Display current state of the check boxes.
public void paint(Graphics g) {
msg = "Current state: ";
g.drawString(msg, 200, 200);
msg = " Windows 98: " + Win98.getState();
g.drawString(msg, 200, 220);
msg = " Windows NT: " + WinNT.getState();
g.drawString(msg, 200, 240);
msg = " Solaris: " + Solaris.getState();
g.drawString(msg, 200, 260);
msg = " MacOS: " + mac.getState();
g.drawString(msg, 200, 280);
}
<\code>
---------------------------------------------------------------------------
I am getting the following error -
"Exception in
thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems:
Win98 cannot be resolved
WinNT cannot be resolved
Solaris cannot be resolved
mac cannot be resolved
at sample.CheckboxSample.paint(CheckboxSample.java:82)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"
The problem is when I am trying to access the Checkbox instance objects (Win98,Solaris etc.) from the paint method. Please suggest me a way out.
Another problem is whenever I run similar code,the frame window appears but I do not get the awt controls(button,labels,etc) in it.Only when I maximise the window,then those Labels and Buttons appear in the window.After once maximising the window,the awt controls remain even after restoring the window to its original size.Can anyone tell me why is this happening and how can I correct it?