java frame paint_一个简单的java frame画图(paint)问题

packagedrawstring;//继承frame来画字符串。importjava.awt.Button;importjava.awt.Color;importjava.awt.FlowLayout;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt....

package drawstring;//继承frame来画字符串。

import java.awt.Button;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class DrawString extends Frame implements ActionListener{

static boolean b1 =false;

static boolean b2= false;

Button btn1;

Button btn2;

Button btn3;

DrawString()//析构函数

{

setSize(300,400);

btn1=new Button("显示字符串");

btn2=new Button("显示图形");

btn3=new Button("退出");

setLayout(new FlowLayout());

add(btn1);

add(btn2);

add(btn3);

btn1.addActionListener(this);

btn2.addActionListener(this);

btn3.addActionListener(this);

setVisible(true);

}

public void actionPerformed(ActionEvent e)

{

if(e.getActionCommand()=="退出")

{ System.exit(0);}

if(e.getActionCommand()=="显示图形")

{

// setSize(300,500);

b2= true;

}

if(e.getActionCommand()=="显示字符串")

{

// setSize(300,500);

b1 = true;

}

}

public void repaint(Graphics g)//frame类里面的函数,继承过来的。

{

if(b1==true){

g.setColor(Color.red);

g.drawString("hello,september", 100, 200);

}

if(b2==true){

g.drawOval(60, 100, 200, 200);

}

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

new DrawString();

}

}

为什么我点击了按钮他不响应,不会自动运行paint规定的操作?

正常来说应该是会按照paint里条件来的,为什么点击了也不会?

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的绘图工具包(Graphics2D)来定义一个画图。首先,你需要创建一个继承自JFrame的自定义类,比如MyFrame。在这个类中,你可以重写paint方法来实现自定义的绘图。在重写的paint方法中,你可以使用Graphics2D对象来进行绘图操作,包括设置画笔粗细、颜色等。你可以根据需求来定义你要画的图形类型,比如直线、圆圈等。下面是一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; public class MyFrame extends JFrame { @Override public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; // 绘制直线 g2d.setStroke(new BasicStroke(2)); g2d.setColor(Color.RED); g2d.drawLine(50, 50, 200, 200); // 绘制圆圈 g2d.setStroke(new BasicStroke(1)); g2d.setColor(Color.BLUE); g2d.drawOval(100, 100, 100, 100); } public static void main(String[] args) { MyFrame frame = new MyFrame(); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` 在这个示例中,我们创建了一个MyFrame类,并重写了其paint方法。在paint方法中,我们首先调用父类的paint方法,然后将Graphics对象强制转换为Graphics2D对象。接着,我们设置画笔的粗细和颜色,并使用drawLine和drawOval方法绘制直线和圆圈。最后,我们创建一个MyFrame对象并显示出来。 请注意,这只是一个简单的示例,你可以根据需求进一步扩展和修改这段代码,实现更复杂的绘图功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [用JAVA一个画图小程序(JAVA 大作业)](https://blog.csdn.net/bigBbug/article/details/128636108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [用java画出菱形](https://blog.csdn.net/m0_67861889/article/details/126789599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Java编写的画图板,功能非常齐全,完整代码 附详细设计报告](https://blog.csdn.net/bangxiecode/article/details/128841986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值