创建2个窗体,分别实现以下内容: 1.绘制文本,通过设置Font类和颜色,实现效果如下: 要求:在一个窗体中重写pait()函数,用drawSting()方式实现。 2.涂鸦板是一个具有趣味性的小程序,它的实现原理是通过鼠标事件,控制鼠标移动结合画图功能实现。鼠标拖拽才开始绘制,松开鼠标则停止绘制。 请用Java图形界面的知识,编写以上软件。
时间: 2024-02-12 20:06:51 浏览: 69
创建窗体的方法
好的,我会按照您的要求回答您的问题。
首先,关于第一个问题,实现绘制文本的窗体,代码如下:
```java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TextFrame extends JFrame {
public TextFrame() {
setTitle("绘制文本窗体");
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setFont(new Font("微软雅黑", Font.BOLD, 24));
g.setColor(Color.RED);
g.drawString("Hello, World!", 100, 100);
}
};
add(panel);
}
public static void main(String[] args) {
TextFrame frame = new TextFrame();
frame.setVisible(true);
}
}
```
这个窗体会在中央绘制一段红色的“Hello, World!”文本,字体为微软雅黑,字号为24。
关于第二个问题,实现涂鸦板的窗体,代码如下:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DoodleFrame extends JFrame {
private List<Point> points = new ArrayList<Point>();
public DoodleFrame() {
setTitle("涂鸦板窗体");
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
for (int i = 0; i < points.size() - 1; i++) {
Point p1 = points.get(i);
Point p2 = points.get(i + 1);
g.drawLine(p1.x, p1.y, p2.x, p2.y);
}
}
};
panel.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
points.add(e.getPoint());
}
@Override
public void mouseReleased(MouseEvent e) {
points.add(null);
}
});
panel.addMouseMotionListener(new MouseAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
points.add(e.getPoint());
repaint();
}
});
add(panel);
}
public static void main(String[] args) {
DoodleFrame frame = new DoodleFrame();
frame.setVisible(true);
}
}
```
这个窗体会在鼠标拖拽时绘制黑色的线条,松开鼠标则停止绘制。在绘制时,将鼠标移动的点加入到列表中,然后在`paintComponent()`方法中依次绘制这些点之间的线条。
阅读全文