On Feb 15, 10:02 am, Peter Duniho<NpOeStPe...@NnOwSlPiAnMk.com>
wrote:
What do you want your class to do? Which of JPanel or JFrame is most
like what you want your class to do?
The JPanel and JFrame classes are similar, but different in notable
ways, all of which are covered in the documentation. It's hard to
understand why you'd be confused about which you want, if you know what
you want your own component to do. And even if you're having trouble
figuring it out, you haven't told us what your component should do, so
we can't answer the question for you.
If you don't know what you want your own component to do, well???I could
see how that might be a problem. But I don't think any of us can help
much with that. :)
Pete
hi thank you for your reply.
the programme would have a button, and it would beep on each click.
anyway here is the full code :)
import java.awt.event.ActionListener;
import javax.swing.JFrame;
/**
*
* @author arshad
*/
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class Beeper extends JPanel implements ActionListener {
JButton button;
public Beeper(){
super(new BorderLayout());
button=new JButton("Click Me");
button.setPreferredSize(new Dimension(200,80));
add(button,BorderLayout.CENTER);
button.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
Toolkit.getDefaultToolkit().beep();
}
//
// create the Gui and show it. for thread safety,
// this method should be invoded from the evennt
dispatching thread
private static void createAndShowGUI(){
//create and set up the window.
JFrame frame =new JFrame("Beeper");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//create and set up the content pane
JComponent newContentPane=new Beeper();
newContentPane.setOpaque(true); //content pane must be opaqu
frame.setContentPane(newContentPane);
//Display the window
frame.pack();
frame.setVisible(true);
}
public static void main(String arg[]){
//schedule a job for the even-dispatchin thread
//creating and shwoing this applications GUI
javax.swing.SwingUtilities.invokeLater(new Runnable(){ public
void run() { createAndShowGUI();}});
}
}
In this example, the choice is purely arbitrary. You can write a program
with identical functionality where Beeper extends JFrame, JPanel or neither.
constructs a JFrame, JPanel and JButton in a method.
There are other aspects to this example which I dislike. If this is from