当前位置: 代码迷 >> Java相关 >> [求助]在Applet里布局一些按钮和标签等组件
  详细解决方案

[求助]在Applet里布局一些按钮和标签等组件

热度:88   发布时间:2007-05-10 11:06:36.0
[求助]在Applet里布局一些按钮和标签等组件
在Applet里布局一些按钮和标签等组件,如果不借助于Java的外部开发环境,怎么能准确设置其大小和位置呢?
搜索更多相关的解决方案: Applet  组件  按钮  

----------------解决方案--------------------------------------------------------
setLayout(null)
然后自己设置组件的边界,setBounds(int x,int y,int width,int height)
----------------解决方案--------------------------------------------------------
谢谢!
----------------解决方案--------------------------------------------------------

顺便问一下,如果我想在APPLET中移动按纽呢?
我用了setLocation做!但效果不好!出现了象残影的现象!
我自己也找了写资料看,但还是没搞定!


----------------解决方案--------------------------------------------------------
想要称动按钮?

残影是因为你没有全部重绘.你把按钮所在的组件也重绘一下就OK了
----------------解决方案--------------------------------------------------------

什么是重绘啊??不是很懂啊.能具体点吗??给出点代码就更好了!


----------------解决方案--------------------------------------------------------
重绘就是repaint()
----------------解决方案--------------------------------------------------------

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

import java.awt.event.*;
import java.applet.Applet.*;
public class m1 extends JApplet
{
JButton b1=new JButton("1");


int m_x,m_y;

public void init()

{ setLayout(null);
b1.setSize(50,50);
b2.setSize(50,50);

getContentPane().add(b1);

b1.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
m_x=e.getX();
m_y=e.getY();

b1.setLocation(m_x,m_y);

repaint();
}
});

}

public void paint(Graphics g)
{

}
}

找了参考书和API还是作不出.能帮我改正一下吗?我好新手!谢!






----------------解决方案--------------------------------------------------------

[CODE]import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.applet.Applet.*;
public class m1 extends JApplet {
JButton b1=new JButton("1");


int m_x,m_y;
public void init()

{
setLayout(null);
b1.setSize(50,50);

getContentPane().add(b1);

b1.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
int x=e.getX();
int y=e.getY();
Point p=SwingUtilities.convertPoint(b1, x,y, m1.this);
b1.setLocation(b1.getX()+(p.x-m_x), b1.getY()+(p.y-m_y));
repaint();
m_x=p.x;
m_y=p.y;
}

});
b1.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent me){
int x=me.getX();
int y=me.getY();
Point p=SwingUtilities.convertPoint(b1, x,y, m1.this);
m_x=p.x;
m_y=p.y;
}
});


}

}[/CODE]

你自己看看吧

还有,你的代码风格不太好,成员变量一般来说应该声明成private的,编码风格你自己试着改改吧
类的命名也一样,你命一个m1 是什么意义,类名应该首字母大写,并且尽量用有意义的名字


----------------解决方案--------------------------------------------------------

谢!!


----------------解决方案--------------------------------------------------------