graphics问题,求高手啊,弄了好久还是不会。如果能详细点,就好,谢谢!

blove2012 2012-04-13 12:49:26
import java.awt.*;
import javax.swing.*;;
public class text extends JFrame{
private JLabel panelNorth;
private JPanel panelSouth;
private JButton but_start;
private JButton but_out;
private JPanel pan;
private BorderLayout lay;
public text()
{
setTitle("面板");
lay=new BorderLayout();
setLayout(lay);
lay.setVgap(15);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(400,100,500,550);
init();
setVisible(true);
}

public void repaintComponent(Graphics g)
{
super.paintComponents(g);
g.setColor(Color.black);
g.drawLine(50,50,100,100);
}

void init()
{
panelNorth=new JLabel("画线!");
panelNorth.setFont(new Font("楷体",30,24));
panelNorth.setForeground(Color.blue);
this.getContentPane().add(panelNorth,BorderLayout.NORTH);


panelSouth=new JPanel();
but_start=new JButton("开始");
but_out=new JButton("退出");
but_start.setFont(new Font("楷体",10,16));
but_out.setFont(new Font("楷体",10,16));
panelSouth.add(but_start);
panelSouth.add(but_out);
this.getContentPane().add(panelSouth,BorderLayout.SOUTH);

pan=new JPanel();
pan.repaint();
this.getContentPane().add(pan,BorderLayout.CENTER);
}
public static void main(String args[])
{
new text();
}
}


不知道怎么使用graphics,画线根本画不了。。。
...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
blove2012 2012-04-13
  • 打赏
  • 举报
回复
谢谢啊,明白了。
sunyiz 2012-04-13
  • 打赏
  • 举报
回复
错误一:
你自己写了个 repaintComponent 方法,却没有任何地方调用它,如何会画出来?
注意这个方法不是 paintComponent
paintComponent 才是应该重写以绘制图形的方法

错误二:
你应该重写你作为画板的那个 JPanel 的 paintComponent 方法
而不是试图重写 JFrame 的什么方法
JFrame 也是没有 paintComponent 方法的
只有 paint 方法,
不过,无论怎么样,都不建议重写 JFrame 的绘制相关的方法
应该重写作为画板的那个 JPanel 的相应方法
blove2012 2012-04-13
  • 打赏
  • 举报
回复
那我想问下,我那样写,那里错了呢?
sunyiz 2012-04-13
  • 打赏
  • 举报
回复
改了下,自己看一下区别吧
import java.awt.*;
import javax.swing.*;

public class text extends JFrame {

private JLabel panelNorth;
private JPanel panelSouth;
private JButton but_start;
private JButton but_out;
private JPanel pan;
private BorderLayout lay;

public text() {
setTitle("面板");
lay = new BorderLayout();
setLayout(lay);
lay.setVgap(15);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(400, 100, 500, 550);
init();
setVisible(true);
}

void init() {
panelNorth = new JLabel("画线!");
panelNorth.setFont(new Font("楷体", 30, 24));
panelNorth.setForeground(Color.blue);
this.getContentPane().add(panelNorth, BorderLayout.NORTH);

panelSouth = new JPanel();
but_start = new JButton("开始");
but_out = new JButton("退出");
but_start.setFont(new Font("楷体", 10, 16));
but_out.setFont(new Font("楷体", 10, 16));
panelSouth.add(but_start);
panelSouth.add(but_out);
this.getContentPane().add(panelSouth, BorderLayout.SOUTH);

pan = new JPanel() {

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.black);
g.drawLine(50, 50, 100, 100);
}
};
this.getContentPane().add(pan, BorderLayout.CENTER);
}

public static void main(String args[]) {
new text();
}
}

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧