não aparece todos os buttons, labels

ola pessoal! sou iniciante em java, estou tentando fazer esse applet porém não aparece todos os buttons e etc q estão no panel… msm aumentando o tamanho da janela, não aparece td… alguém pode me orientar?
ps: to usando o netbeans

[code]import java.applet.Applet;
import java.awt.*;
import javax.swing.JLabel;

import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class MoveBox extends Applet
{ int w,h;

private Button iniciar = new Button(“iniciar”);
private Button pausar = new Button(“Pausar”);
private Button continuar = new Button(“Continuar”);
private JLabel massa = new JLabel(“Massa:”); private JLabel kg = new JLabel(“kg”);
private JLabel k = new JLabel(“Constante da mola (k):”);private JLabel nm = new JLabel(“N/m”);
private JLabel a = new JLabel(“Amplitude”);private JLabel m = new JLabel(“m”);
private JLabel osc = new JLabel(“Período de Oscilação”);private JLabel oscresp = new JLabel("");
private JLabel s = new JLabel(“s”);
private JRadioButton elong = new JRadioButton(“Elongação”,true);
private JRadioButton v = new JRadioButton(“Velocidade”,false);
private JRadioButton e = new JRadioButton(“Energia”,false);
private JTextField txtmassa = new JTextField(3);
private JTextField txtk = new JTextField(3);
private JTextField txta = new JTextField(3);

public void init()
{ setSize(400,250);
w = 350;
h = 200;
setBackground(Color.white);
Panel control = new Panel();

  control.add(massa); control.add(txtmassa);  control.add(kg);
   control.add(k); control.add(txtk); control.add(nm);
   control.add(a);  control.add(m);
   control.add(osc); control.add(oscresp); control.add(s);
  control.add(iniciar);
  control.add(pausar);
  control.add(continuar);
  control.add(nm);
  control.setPreferredSize(new Dimension(w,100));
  control.setBackground(Color.lightGray);
  setLayout(new BorderLayout());
  add("South", control);

}

public void paint(Graphics g)
{

     g.setColor(Color.BLACK);
     g.drawLine(125, 0, 225,0);//apoio do pendulo
     g.drawLine(w/2, 0, w/2,10);//inicio do pendulo
      g.drawLine((w/2), (h/2)-30, w/2,(h/2)+10);// fim do pendulo
     for(int i = 0; i< 55; i+=5) //mola
      g.drawOval((w/2)-12, 10+i, (w/2)-150 , 10);

     g.setColor(Color.RED);
     g.fillOval((w/2)-17 , (h/2) -20, (w/2) -140, (h/2)-70);

}

}[/code]

obrigada desde já!

bom dia.

na aba ‘inspector’ onde mostra os componentes que tem no seu formulário, aparece esses objetos? Se sim… o problema está na posição deles…

Veja como está as propriedades ‘MaximumSize’, ‘MinimumSize’, ‘preferedSize’.

Quem faz essas coisas aparecerem é o método paint. Como você sobrescreveu esse método para incluir o seu próprio, você tem duas saídas:

  1. Chamar super.paint(g) na primeira linha do seu método paint;
  2. Fazer a pintura no método PaintComponent de um JPanel, e então incluir esse JPanel no seu applet.

Lembre-se também que é importante tirar uma cópia do contexto gráfico antes de utiliza-lo.

Graphics2D g2d = g.create(); //Desenhe usando g2d g2d.dispose();

Eu optaria pela segunda saída, pois dá mais flexibilidade ao programa, e deixa mais fácil de posicionar o desenho no futuro.
Se você estiver programando um jogo, aí sim, use a primeira alternativa.

Não testei seu código, mas tudo indica que seja o fato de que você usou o BorderLayout

e só colocou todos os teus controles na parte SOUTH dele.

tente colocá-los de maneira mais controlado usando as diversas posicoes do BorderLayout

control.add(massa, BorderLayout.NORTH);
control.add(txtmassa, BorderLayout.SOUTH);
control.add(kg), BorderLayout.EAST);
control.add(k, BorderLayout.WEST);
control.add(txtk, BorderLayout.CENTER);

Ou use só no CENTER, que afinal é a área maior. Veja:

[quote]na aba ‘inspector’ onde mostra os componentes que tem no seu formulário, aparece esses objetos? Se sim… o problema está na posição deles…

Veja como está as propriedades ‘MaximumSize’, ‘MinimumSize’, ‘preferedSize’. [/quote]

como tá fazendo “a mão” não aparece essas opções no netbeans, só aparece qnd tá usando o Applet Form

[quote]Quem faz essas coisas aparecerem é o método paint. Como você sobrescreveu esse método para incluir o seu próprio, você tem duas saídas:

  1. Chamar super.paint(g) na primeira linha do seu método paint;
  2. Fazer a pintura no método PaintComponent de um JPanel, e então incluir esse JPanel no seu applet. [/quote]

seu eu coloco super.paint(g); o desenho some

============

qnd coloco pra rodar, tá acontecendo isso http://imageshack.us/photo/my-images/851/cmsetsize.jpg/

qnd tiro setsize, o panel aparece em cima do desenho e preciso desse desenho pq terei q fazer uma movimentação cm ele
fica assim http://imageshack.us/photo/my-images/718/semsetsize.jpg/

use o NB então.

simples

Leia o que eu escrevi.

[quote=tahinf]qnd tiro setsize, o panel aparece em cima do desenho e preciso desse desenho pq terei q fazer uma movimentação cm ele
fica assim http://imageshack.us/photo/my-images/718/semsetsize.jpg/[/quote]

Leia o que eu escrevi.

então não sei como faço o desenho utilizando o netbeans =/

tá se referindo [quote] 1. Graphics2D g2d = g.create();
2. //Desenhe usando g2d
3. g2d.dispose(); [/quote]

e onde colocaria isso? no public void paint(Graphics g)?

Isso, seu método paint ficaria assim:

[code]public void paint(Graphics g) {
super.paint(g);

Graphics2D g2d = (Graphics2D) g.create();
g2d.setColor(Color.BLACK);  
g2d.drawLine(125, 0, 225,0);//apoio do pendulo  
g2d.drawLine(w/2, 0, w/2,10);//inicio do pendulo  
g2d.drawLine((w/2), (h/2)-30, w/2,(h/2)+10);// fim do pendulo  
for(int i = 0; i< 55; i+=5) //mola  
    g2d.drawOval((w/2)-12, 10+i, (w/2)-150 , 10);  

g2d.setColor(Color.RED);  
g2d.fillOval((w/2)-17 , (h/2) -20, (w/2) -140, (h/2)-70);  
g2d.dispose();

} [/code]

Mas, pelo seu desenho, seria melhor ainda sobrescrever um JPanel e fazer esse método ser parte do PaintComponent do painel. E depois só encaixar esse painel no seu frame.

desculpa, mas acho que não entendi mto bem o q quer dizer (to começando em java agora), tem como me dar um exemplo?