0

I new to java's applet programming & there is a problem in my program

This is my program:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/*<applet code=Rect height=600 width=800></applet>*/

public class Rect extends JApplet implements ActionListener
{
JLabel jl1,jl2,jl3,jl4;
JTextField jt1,jt2,jt3,jt4;
JButton jb;
int x1,x2,y1,y2;
public void init()
{
Container c=getContentPane();
c.setLayout(new FlowLayout());
jl1=new JLabel("x1 : ");
jl2=new JLabel("y1 : ");
jl3=new JLabel("x2 : ");
jl4=new JLabel("y2 : ");
jt1=new JTextField(5);
jt2=new JTextField(5);
jt3=new JTextField(5);
jt4=new JTextField(5);
jb=new JButton("Draw");
jb.addActionListener(this);
c.add(jl1);
c.add(jt1);
c.add(jl2);
c.add(jt2);
c.add(jl3);
c.add(jt3);
c.add(jl4);
c.add(jt4);
c.add(jb);
}
public void actionPerformed(ActionEvent ae)
{
    String s=ae.getActionCommand();
    x1=Integer.parseInt(jt1.getText());
    y1=Integer.parseInt(jt2.getText());
    x2=Integer.parseInt(jt3.getText());
    y2=Integer.parseInt(jt4.getText());
    repaint();
}
public void paint(Graphics g)
{
    g.drawLine(x1,y1,x2,y2);
}
}

I have did everything perfect but it shows some imperfection by disappearing the labels, textfields & buttons

Is there anyone can help me with my problem?????

5
Contributors
9
Replies
10
Views
5 Years
Discussion Span
Last Post by vinnitro
0

You need to make the setVisible property of Container to be true.Thenall the textboxes,labels etc will be visible.

c.setVisible(true);

Edited by Mr.Angry

1

You have overidden JApplet's paint method, which is the method responsible for ensuring the contents are painted. That's why they don't get painted. Add a call to super.paint(g) as the first line of your paint mathod. This will ensure that everything in the applet gets painted before you draw your line.
Read this for more info, including the use of paintComponent rather than paint:
http://java.sun.com/products/jfc/tsc/articles/painting/#callbacks

Edited by JamesCherrill

0

That's bizzare. I just copied the code. pasted it into eclipse and ran as applet, and got the expected bad result which is no visible text fields. and no visible button until the appropriate area is clicked. adding super.paint(g); fixed it.
Are you saying that you see the button and entry fields?

1

Yes. I executed the appletviewer: D:\Java\jdk1.6.0_02\bin\appletviewer.exe Rect.java

Votes + Comments
it is truly bizarre because my friends also didn't got the output as expected
0

EVen more bizarre! I get the same bad result (no visible fields or button) from using the appletviewer as well (JDK 1.7.0_03 Win 64).

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.