请教大家 我想写一个画线的JFrame,想用代码写,但是我创建了一个类,应该怎么将这个类扩展为JFrame,我用的是netbeans6 在线等。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 继承于JFrame,但JFrame是一个框架容器,想要画线,就要在JFrame里添加一个JPanel,在JPanel上画线。 写了个小例子, 可以参考一下:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Test01 extends JPanel { private static final long serialVersionUID = 5065226994867636859L; private int startPointX, startPointY; private int endPointX, endPointY; public Test01() { this.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { startPointX = e.getX(); startPointY = e.getY(); } }); this.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseDragged(MouseEvent e) { endPointX = e.getX(); endPointY = e.getY(); Test01.this.repaint(); } }); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); g.drawLine(startPointX, startPointY, endPointX, endPointY); } private static void createGUIAndShow() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600, 600); JPanel panel = new Test01(); frame.getContentPane().add(panel); frame.setVisible(true); } public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { Test01.createGUIAndShow(); } }); }} netbeans 开发RCP时,新文件支持中怎么运用“新建文件”的问题 java与unix C通信的问题 谁可以帮我分析一下这名话?关于面向对象的。 有人知道孙伟琴吗,写java书的 静态的方法与属性不可以被继承对吗? 关于Properties在tomcat下的问题 关于动态加载类的问题,欢迎大家指教! 请教一个关于Class.forName的问题。 如何判断JFrame处于最大化状态? 请教一个对Calender赋值的问题 如何使JButton上的文字居左 修改属性文件的问题?急救,高手们请帮帮我!
import java.awt.*;
import java.awt.event.*;public class Test01 extends JPanel {
private static final long serialVersionUID = 5065226994867636859L;
private int startPointX, startPointY;
private int endPointX, endPointY; public Test01() {
this.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
startPointX = e.getX();
startPointY = e.getY();
}
}); this.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
endPointX = e.getX();
endPointY = e.getY(); Test01.this.repaint();
}
});
} @Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.drawLine(startPointX, startPointY, endPointX, endPointY);
} private static void createGUIAndShow() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600); JPanel panel = new Test01();
frame.getContentPane().add(panel); frame.setVisible(true);
} public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Test01.createGUIAndShow();
}
});
}
}