Re: Imitating a JFrame extended program with JPanel; help needed...
Amr wrote:
the program somewhat working now after making some changes from the
given suggestion.
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
import net.miginfocom.swing.MigLayout;
public class AL2 extends JFrame implements ActionListener{
JTextField countText=new JTextField(20);
Why do you use package-private (a.k.a. "default") access instead of private?
JButton button=new JButton("Click to increment");
private int numClicks=0;
Initialization of a member variable to zero is redundant, causing zero to be
assigned to it twice. (The same holds true of initialization of a reference
member to 'null'.) The performance impact is negligible, though, and some
will argue that the explicit initialization is useful for code maintainers.
public AL2(){
super();
The explicit invocation of the no-argument 'super()' constructor is completely
unnecessary.
themes();
// Dimension
d=java.awt.Toolkit.getDefaultToolkit().getScreenSize();
// setSize(d);
JPanel pane=new JPanel(new MigLayout("Wrap 1"));
button.addActionListener(this);
pane.add(countText);
pane.add(button);
add(pane);
setVisible(true);
pack();
The call to 'pack()' should come before the call to 'setVisible()'.
}
public void themes(){
try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);}catch (Exception e)
{
System.out.println("errror in applying the theme");
}
}
Please use conventional indentation to keep your code readable.
public void actionPerformed(ActionEvent e){
numClicks++;
countText.setText("Button CLicked"+numClicks+"Times");
}
public static void main(String arg[]){
AL2 a=new AL2();
}
}
You continue to perform GUI operations not on the EDT. This is dangerous and
will lead to weird bugs. Several folks have mentioned this to you.
PS: is there any way in this group that each and every mail lands in
my email box, so that i [sic] can reply from there itself without coming to
the webpage?
No. This is a newsgroup, not a web page. The posts are not emails, but
newsgroup posts. It's like the difference between a paper letter that you
send via the post office, and an index card announcement that you post on a
community bulletin board.
Don't use a web interface, use a newsreader instead. markspace mentioned
Mozilla Thunderbird, a decent one although not necessarily the best.
You will need access to a news server if you use a newsreader.
--
Lew