java中drawLine无法画线,求解。。。
以下是书上的例子,结果如图,而书本上的结果应该是窗口左上到Banner有条线的,求解释啊,谢谢importjavax.swing.*;importjava.awt.Gra...
以下是书上的例子,结果如图,而书本上的结果应该是窗口左上到Banner有条线的,求解释啊,谢谢
import javax.swing.*;
import java.awt.Graphics;
public class TestGetGraphics extends JFrame{
private JLabel jlblBanner = new JLabel("Banner");
TestGetGraphics(){
add(jlblBanner);
System.out.println(jlblBanner.getGraphics());
}
public static void main(String[] args){
TestGetGraphics frame = new TestGetGraphics();
frame.setTitle("TestGetGraphics");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,100);
frame.setVisible(true);
//JOptionPane.showMessageDialog(null,"Delay on purpose\nClick OK to dismiss the dialog");
Graphics graphics = frame.jlblBanner.getGraphics();
graphics.drawLine(0,0,50,50);
}
}
上传这个应该行了 展开
import javax.swing.*;
import java.awt.Graphics;
public class TestGetGraphics extends JFrame{
private JLabel jlblBanner = new JLabel("Banner");
TestGetGraphics(){
add(jlblBanner);
System.out.println(jlblBanner.getGraphics());
}
public static void main(String[] args){
TestGetGraphics frame = new TestGetGraphics();
frame.setTitle("TestGetGraphics");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,100);
frame.setVisible(true);
//JOptionPane.showMessageDialog(null,"Delay on purpose\nClick OK to dismiss the dialog");
Graphics graphics = frame.jlblBanner.getGraphics();
graphics.drawLine(0,0,50,50);
}
}
上传这个应该行了 展开
4个回答
展开全部
明天看看
JLabel
改成
Label
SWING的控件
与AWT的控件,在触发时机上有所有同,这个没有深入的研究过,只是在运用的过程中发现它们有所有同。书本上一般都是用AWT的。
-------------------------------------------------------------------------------------------------------
import java.awt.Graphics;
import java.awt.Label;
import javax.swing.JFrame;
public class TestGetGraphics extends JFrame {
private Label jlblBanner = new Label("Banner");
TestGetGraphics() {
getContentPane().setLayout(null);
jlblBanner.setBounds(0, 21, 180, 42);
getContentPane().add(jlblBanner);
setSize(200, 100);
}
public static void main(String[] args) {
TestGetGraphics frame = new TestGetGraphics();
frame.setTitle("TestGetGraphics");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
Graphics graphics = frame.jlblBanner.getGraphics();
graphics.drawLine(0, 0, 50, 50);
}
}
JLabel
改成
Label
SWING的控件
与AWT的控件,在触发时机上有所有同,这个没有深入的研究过,只是在运用的过程中发现它们有所有同。书本上一般都是用AWT的。
-------------------------------------------------------------------------------------------------------
import java.awt.Graphics;
import java.awt.Label;
import javax.swing.JFrame;
public class TestGetGraphics extends JFrame {
private Label jlblBanner = new Label("Banner");
TestGetGraphics() {
getContentPane().setLayout(null);
jlblBanner.setBounds(0, 21, 180, 42);
getContentPane().add(jlblBanner);
setSize(200, 100);
}
public static void main(String[] args) {
TestGetGraphics frame = new TestGetGraphics();
frame.setTitle("TestGetGraphics");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
Graphics graphics = frame.jlblBanner.getGraphics();
graphics.drawLine(0, 0, 50, 50);
}
}
展开全部
在graphics.drawLine(0,0,50,50);
下一行加上
frame.repaint();试试
下一行加上
frame.repaint();试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,你覆盖paint() 方法啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
图呢
追问
结果是窗口中只有Banner标签,没有线
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询