java,不是说不能直接给一个JFrame调用add方法吗??怎么我直接调用却没问题啊,并且还可以达到我的目的?
importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassDemoextendsJFr...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Demo extends JFrame implements MouseMotionListener{
//JFrame可以画图
// 1,先学会用坐标
// 2,鼠标画圆
Point a = new Point(90,90);
Point startPoint = new Point(10,40);
Point endPoint = new Point(10,50);
JTextField text = new JTextField("wo ai ni");
public void init(){
text.setBounds(80, 80, 110, 80);
text.setBackground(Color.CYAN);
this.setLayout(new FlowLayout());
this.add(text);
//this.setBackground(Color.blue); //设置框体的背景色
this.addMouseMotionListener(this);
}
public void paint(Graphics g){
g.setColor(Color.red);
//g.fillOval(a.x,a.y, 50, 50);
g.drawLine(startPoint.x,startPoint.y,endPoint.x,endPoint.y);
}
public void mouseDragged(MouseEvent e){
startPoint = endPoint;
endPoint = e.getPoint();
repaint();
}
public void mouseMoved(MouseEvent e){
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo d = new Demo();
d.init();
d.setVisible(true);
}
} 展开
import javax.swing.*;
import java.awt.event.*;
public class Demo extends JFrame implements MouseMotionListener{
//JFrame可以画图
// 1,先学会用坐标
// 2,鼠标画圆
Point a = new Point(90,90);
Point startPoint = new Point(10,40);
Point endPoint = new Point(10,50);
JTextField text = new JTextField("wo ai ni");
public void init(){
text.setBounds(80, 80, 110, 80);
text.setBackground(Color.CYAN);
this.setLayout(new FlowLayout());
this.add(text);
//this.setBackground(Color.blue); //设置框体的背景色
this.addMouseMotionListener(this);
}
public void paint(Graphics g){
g.setColor(Color.red);
//g.fillOval(a.x,a.y, 50, 50);
g.drawLine(startPoint.x,startPoint.y,endPoint.x,endPoint.y);
}
public void mouseDragged(MouseEvent e){
startPoint = endPoint;
endPoint = e.getPoint();
repaint();
}
public void mouseMoved(MouseEvent e){
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo d = new Demo();
d.init();
d.setVisible(true);
}
} 展开
3个回答
展开全部
直接调用是没问题 是不推荐直接调用add方法 这个方法可能在以后的版本中会被去掉 所以不推荐使用 而不是不能使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接调用不会出错啊。只是如果添加多个组件的时候,如果不选择布局方式,JFrame会默认为BorderLayout布局,默认把组件放在中间,后添加的会把之前添加的给盖住。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用没有问题。
有时候,会被rootPane遮挡住的
有时候,会被rootPane遮挡住的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询