有关在Graphics在JFrame 中画线的问题! 我是个java菜鸟!想问一下在java中用Graphic画怎么没显示出来?敬请哪位高手指点一二! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import javax.swing.*;import java.awt.*;public class GraphicsExam extends JFrame{ public GraphicsExam() { setSize(1000,700); setVisible(true); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new GraphicsExam(); } public void paint(Graphics g) { g.drawLine(20,550,260,550); g.drawLine(140,50,140,550); g.drawLine(280,550,520,550); g.drawLine(400,50,400,550); g.drawLine(540,550,780,550); g.drawLine(660,50,660,550); }} 很明显的问题我在缩小再放大后会产生线天!在此我又想请教一下Graphics在JFrame中的'兼容'是不是有问题还是别的原因?请高手指教; 我给你想了一个方法,就是将这个绘画的方法放到Panel里面去,可能面板上面不能够绘画吧!代码如下:import javax.swing.*;import java.awt.*;public class GraphicsExam extends JFrame{ public GraphicsExam() { setTitle("Login"); setSize(1000,700); setVisible(true); setResizable(false); Container con = getContentPane(); con.add(new ExampPanel()); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); new GraphicsExam(); } }class ExampPanel extends JPanel{ public void paint(Graphics g) { g.drawLine(20,550,260,550); g.drawLine(140,50,140,550); g.drawLine(280,550,520,550); g.drawLine(400,50,400,550); g.drawLine(540,550,780,550); g.drawLine(660,50,660,550); }} 我在书上面查了一下的,书上的解释如下:要在小应用程序或应用程序中的画板上绘制自定义图形,差不多始终要编写扩展JPanel类的新类,在该类中,覆盖paintComponent()方法的定义.也就是说,任何时候,你准备把文本信息或图形放入画板,都需要定义一个新类,并改写paintComponent()方法.如:class MyPanel extends JPanel{ ... public void paintComponent(Graphics g) { .....//将在这里通过参数g完成绘制代码 }} 但是这个在JFrame中若缩放一下又可显示!按您的意思是不是在Frame和JFrame中都这样还是另外在JFrame中按paintComponent()另外这个在Frame中的应用不是还好吗?麻烦再问一下为什么在JFrame中为什么会出现这种状态.....尤其是在缩放之后你看仍可看到.谢谢了 JFrame和Frame只是一个框架而已,一般添加组件的话还是放在面板里面 JPanel?但是有的不是直接放进去吗>?只是一个框架高手想问一下这所代表的深层含义.........谢谢 你如果不想用面板也可以的,在public void paint(Graphics g){ super.paint(g); //加上这么一句话,调用父类的paint方法 g.drawLine(20,550,260,550); g.drawLine(140,50,140,550); g.drawLine(280,550,520,550); g.drawLine(400,50,400,550); g.drawLine(540,550,780,550); g.drawLine(660,50,660,550); } 现在还有个问题在JFrame里面为什么 一 开始没有显示仍然是这个问题!显然这在初始化的时候会对程序有影响的我想问问这是怎么一回事!也就是我最想问的问题。。谢谢! 分享一个经典的生产者/消费者问题。 并且有分接 在jEditorPane跟jTextPane中显示html界面很乱 java中循环的小问题 请问如何一天结束了,就清空数据库呢? javadoc如何生成英文的框架文档 refactor什么意思? 组件获得焦点,并能够作出响应 怎样让一个Swing的窗体内部的组件例如一个文本框随着主窗体尺寸的变化而成比例的变化? 装了JBuilder 9.0后,以前的sdk 1.41还可以照常用吗?谢谢! 请看一个程序 JAVA如何读取图片的长和宽 小鸟的问题
import java.awt.*;
public class GraphicsExam extends JFrame
{
public GraphicsExam()
{
setSize(1000,700);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new GraphicsExam();
}
public void paint(Graphics g)
{
g.drawLine(20,550,260,550);
g.drawLine(140,50,140,550);
g.drawLine(280,550,520,550);
g.drawLine(400,50,400,550);
g.drawLine(540,550,780,550);
g.drawLine(660,50,660,550);
}
}
在此我又想请教一下Graphics在JFrame中的'兼容'是不是有问题还是别的原因?
请高手指教;
import java.awt.*;public class GraphicsExam extends JFrame
{
public GraphicsExam()
{
setTitle("Login");
setSize(1000,700);
setVisible(true);
setResizable(false);
Container con = getContentPane();
con.add(new ExampPanel());
setDefaultCloseOperation(EXIT_ON_CLOSE);
} public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
new GraphicsExam();
}
}class ExampPanel extends JPanel
{
public void paint(Graphics g)
{
g.drawLine(20,550,260,550);
g.drawLine(140,50,140,550);
g.drawLine(280,550,520,550);
g.drawLine(400,50,400,550);
g.drawLine(540,550,780,550);
g.drawLine(660,50,660,550);
}
}
{
...
public void paintComponent(Graphics g)
{
.....//将在这里通过参数g完成绘制代码
}
}
另外这个在Frame中的应用不是还好吗?麻烦再问一下为什么在JFrame中为什么会出现这种状态.....尤其是在缩放之后你看仍可看到.
谢谢了
public void paint(Graphics g)
{
super.paint(g); //加上这么一句话,调用父类的paint方法
g.drawLine(20,550,260,550);
g.drawLine(140,50,140,550);
g.drawLine(280,550,520,550);
g.drawLine(400,50,400,550);
g.drawLine(540,550,780,550);
g.drawLine(660,50,660,550);
}
显然这在初始化的时候会对程序有影响的我想问问这是怎么一回事!也就是我
最想问的问题。。
谢谢!