方法1:
public?static?void?main(String[]?args)?{
//JPanel?p?=?new?JPanel();?注释掉这句
JFrame?frame?=?new?JFrame("DrawLine");
frame.add(new?DrawLine());//将p对象换成本类
//因为本类继承了JPanel重写paintComponent进行绘制,是绘制到本类的panel上的,
//而不是绘制到new?Panel()对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
protected?void?paintComponent(Graphics?g)?{
super.paintComponent(g);
//这种方式可能?让你更理解
DrawLine?dl?=?new?DrawLine();//新建对象
dl.init();//执行初始化
private?void?init(){
frame.add(this);//将p对象换成本类
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;public class DrawLine extends Frame
implements WindowListener
{
static ArrayList lbArray; DrawLine(){
setVisible(true);
Label lb0=new Label("Hello");
addWindowListener(this);
add(lb0);
Label lb1=new Label("World!");
add(lb1);
lbArray.add(lb0);
lbArray.add(lb1);
repaint(); }
public void windowClosed(WindowEvent w)
System.exit(0);
public void windowClosing(WindowEvent w)
dispose();
public void windowOpened(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void paint(Graphics g)
super.paint(g); if(lbArray.size()=1)
g.setColor(Color.red);
Label lb=(Label)lbArray.get(0);
Rectangle rc=lb.getBounds();
for(int i=1;ilbArray.size();i++)
lb=(Label)lbArray.get(i);
rc=lb.getBounds();
} public static void main(String[] args){
lbArray=new ArrayList(10);
new DrawLine();
} 终于做了个满足你要求的东西.要知道我昨天和你说过我并不常用Java.赶快采纳吧.
这个简单
特意给你写了个小例子,希望能帮到你
***************************************
import javax.swing.*;
public class DrawLine extends JPanel {
public static void main(String[] args) {
JFrame frame = new JFrame("DrawLine");
frame.getContentPane().add(new DrawLine());
protected void paintComponent(Graphics g) {
****************************
将程序复制到记事本中并改名为DrawLine.java(注意大小写)
然后在命令行中用 CD+文件夹 使命令范围到DrawLine.java的文件夹中
然后执行命令javac DrawLine.java
再执行命令java DrawLine
你会看到结果
定义一个类继承JPanel类,重写 JPanel 的 paint 方法,使用 Graphics 绘制线段,如下代码:
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Graphics;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
class?MyPanel?extends?JPanel?{
@Override
public?void?paint(Graphics?g)?{
super.paint(g);
g.setColor(Color.RED);
for?(int?i?=?0;?i?10;?i++)?{
public?class?App?extends?JFrame?{
public?App()?{
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel?panel?=?new?MyPanel();
this.add(panel,?BorderLayout.CENTER);
new?App().setVisible(true);
运行结果:
以上就是土嘎嘎小编为大家整理的java中画线的代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!