java GUI编程函数执行顺序问题

import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import gui.ZJM;
public class Bresenham extends JPanel {
private int x0;
private int y0;
private int xEnd;
private int yEnd;
private boolean temp=false;
void setyEnd(int i) {
// TODO 自动生成的方法存根
yEnd=i;
}

 void setxEnd(int i) {
    // TODO 自动生成的方法存根
    xEnd=i;
}

 void setY0(int i) {
    // TODO 自动生成的方法存根
    y0=i;
}

void setX0(int i) {
    // TODO 自动生成的方法存根
    x0=i;
}

//Graphics g=getGraphics();
@Override
public void paintComponent(Graphics g) {
    //super.paintComponent(g);

    Graphics2D g2d = (Graphics2D)g;

    g2d.translate(getWidth() / 2, getHeight() / 2);
    g2d.scale(1, -1); 
    g2d.drawLine(-400, 0, 400, 0);
    g2d.drawLine(0, -400, 0, 400);
    temp=true;

//g2d.drawLine(x0, y0, xEnd, yEnd);
//Bresline();

}
public void setPixel(int x,int y){ 
    Graphics g = getGraphics();
     Graphics2D g2d = (Graphics2D)g;         
     g2d.translate(getWidth() / 2, getHeight() / 2);
     g2d.scale(1, -1); 
    g2d.setColor(Color.RED);
    g2d.fillOval(x,y,1,1);
      }
static void createAndShowGUI(Bresenham a) {
    JFrame frame = new JFrame();

    // Add your component.

    frame.setContentPane(a);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(700, 400);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}
public void Bresline(){
    int dx=Math.abs(xEnd-x0),dy=Math.abs(yEnd-y0);
    int p=2*dy-dx;
    int twoDy=2*dy,twoDyMinusDx = 2*(dy-dx);
    int x,y;

    if(x0>xEnd) {
        x=xEnd;
        y=yEnd;
        xEnd=x0;}
    else {
        x=x0;
        y=y0;
    }
    setPixel(x,y);
    while(x<xEnd) {
        x++;
        if(p<0)
            p+=twoDy;
        else {
            y++;
            p+=twoDyMinusDx;
        }
        setPixel(x,y);
        try {
             Thread.currentThread().sleep(250);
         }
         catch(Exception e){} 
    }

}
public void bresline(int x0,int y0,int xEnd,int yEnd) {
    Bresenham a = new Bresenham();
    a.setX0(x0);
    a.setY0(y0);
    a.setxEnd(xEnd);
    a.setyEnd(yEnd);
a.createAndShowGUI(a);
a.Bresline();
}
public static void main(String[] args) throws IOException {

}

}
问题1:为什么Bresline函数调用在画出坐标轴之前?
问题 2:如何修改才能在坐标轴上作图
补充:本意是想从另一个类中调用bresline(int,int,int,int)函数来实现作图,但测试的时候发现将x0,y0,yend,xend设为常数后从主函数调用bresline()函数就对了

0

1个回答

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java GUI事件模型的调用流程
Java的事件模型由三种类型组成: 1.事件对象(类比swing中的ActionEvent) 2.源对象(类比swing中的JButton) 3.事件监听器对象(类比swing中的ActionListener) 源对象是事件的产生者,在JAVA GUI中,一个按钮、一个文本都是一个源对象。 当我们通过鼠标点击或键盘输入对源对象进行操作时,源对象会调用某个方法,然后在该方法内生成一个事件对
(一)GUI程序原理分析
命令行应用程序: 主要基于顺序执行结构、以得到执行结果为目的、在执行过程中不需要与用户进行任何形式的交互、的应用程序,程序本身有着固定的开始固定的结束,程序一旦编译完成其运行结果几乎得以确定 命令行程序运行模式: 从函数入口开始,执行完主函数结束   使用范围: 单任务场合 无交互或简单交互场合 服务器应用场合(将计算机资源尽可能的用于提供实际的服务) 要求效率场合
Java互斥锁的互斥原理与多线程执行顺序
package day10; /** * 互斥锁 * synchronized也叫互斥锁。即: * 使用synchronized修饰多段代码,只要它们的同步监视器对象相同 * 那么这几段代码间就是互斥关系。即:多个线程不能同时执行这些代码。 * @author kaixu * */ public class SyncDemo4 { public static void main(...
Java 多态之方法调用顺序
本文例子取于&amp;lt;深入理解java多态性&amp;gt;和&amp;lt;java提高篇(四)-----理解java的三大特性之多态&amp;gt;,分析 Java 继承链方法调用优先级以及执行流程。 本文相当于是我对上面两篇文章的理解。 public class A { public String show(D obj) { return (&quot;A an...
java语言GUI编程之paint
/*  时间:2015年3月21日22:06:05  目的:测试paint函数  paint函数声明如下:   public void paint(Graphics g)   应该绘制组件的内容时调用此方法;例如首次显示组件或者组件已损坏并需要修复时。Graphics 参数中的剪贴区矩形设置为需要绘制的区域。重写此方法的 Component 子类不需要调用 super.paint(g)。
Java之GUI和网络编程
一、GUI        1、计算机与用户交互的方式有两种,一种是命令行,一种是图形化界面,而GUI是图形用户的接口,用图形的方式来显示计算机操作的界面,这样更方便直接,我们把图像化界面的对象都封装在了Java.Awt 和Javax.Swing包中。Awt是抽象接口工具包,它需要调用本地系统方法实现功能,与系统依赖性强,跨平台性较弱,属于重量级控制。Swing是在Awt的基础上建立的一套图形
你真的知道java中if函数的执行顺序吗
if(初始化;判定条件;动作1){   动作2;}三点需要注意的:一、初始化完成后首先判定条件,然后执行动作2,再执行动作1,然后再判定条件,动作2,动作1。比如 if(int i=1;i&amp;lt;=10;i++){r=i;}   System.out.println(r);输出结果是10但是 if(int i=1;i&amp;lt;=10;r=1){i++}   System.out.println(r)...
Java 开发GUI 程序的步骤
1. 继承 JFrame;2. 定义所需要的组件3. 创建组件4. 设置布局管理器5. 添加组件6. 显示窗口
java中GUI出现的问题及解决方法
曾经做完GUI界面时,发现一个很有趣的问题,
MATLAB GUI界面编程——一些细节问题
写在前面的话: 本篇博文主要对自己在进行MATLAB GUI设计时遇到的一些细节问题进行总结,点击下面目录中的相关问题,可以直接跳转至相应位置。另外,需要声明的是,我所使用的MATLAB版本——MATLAB R2017a。 目录 一、使用MATLAB的GUIDE开发环境,来快速创建GUI界面 二、修改MATLAB GUI的.fig和.m文件名 三、修改MATLAB GUI界面的名字 四...
Java GUI入门教程
Java程序中开发GUI页面。下面我主要对Java中实现图像管理、图形绘制和颜色管理等做出介绍,与此同时,Swing包也做出一部分介绍。
Java中方法执行顺序
Java中方法执行顺序:首先是静态块先执行,静态方法,最后是构造函数。 构造方法只有在new对象的时候才会执行,静态语句块和静态方法在类加载到内存的时候就已经执行了。另外,静态语句块只能给静态变量赋值,里面不能出现方法,同样,静态方法里面也不能出现静态语句块。 先是静态语句块执行,然后静态方法加载到内存,静态语句块你不管它它会自动会执行,而静态方法它一直存在于内存中,只有你用类名点方法名的时候
c语言-函数执行顺序,函数返回类型那些事
关于二分查找问题我们可以向自己提三个问题? ①这两个程序执行效果相同? ②两个程序执行的代码编写顺序为什么不同,结果一样? ③自定义函数为什么可以没有函数返回值怎么可以没有? 程序一: #include int main(){ int binarySearch(int a[], int n, int key);     int i, val, ret;     int
Java中的GUI编程
Java中的GUI编程.ppt Java中的GUI编程
Java之GUI编程(一)
GUI全称Graphical User Interfaces,意为图形用户户界面,又称为图形用户接口,GUI指的就是采用图形方式显示的计算机操作用户界面,打个比方吧,我们点击QQ图标,就会弹出一个QQ登陆界面的对话框。这个QQ图标就可以被称作图形化的用户界面。 实现GUI编程的必不可少的三个条件是组件、事件
实验5:复合函数
通过设计复合函数,引入桥接模式。这里以一般性的数学例子,y = f(x),其中 f 表示中x到y的映射。 -------------------------- 1.映射f 映射方式多种多样,如 f(x) = x+1 f(x)= x *x f(x) = (x+1)* (x+1) 因此,映射f可以抽象为函数接口F。Demo与F构成策略模式 package chap4.compositeF...
Java之GUI(图形界面编程)布局管理器
BorderLayout边框布局:将容器分为东、西、南、北、中5个部分 ex: /** * BorderLayout边框布局:将容器分为东、西、南、北、中5个部分 * @author Administrator */ public class BorderLayoutDemo { public static void main(String[] args) { // TOD...
多线程控制线程的执行顺序
如何控制线程执行的顺序?要解决如上的题目,得理解题意的重心在哪。关键词:线程与顺序。先来一段多线程执行的代码。public class Test { public static void main(String[] args) { Thread t1 = new Thread(new MyThread1()); Thread t2 = new Thread(...
MATLAB GUI编程总结
MATLAB GUI编程总结 最近鼓弄毕设,做的是人脸识别方面的东西,用 matlab 编程实现,后来想到做一个GUI界面,经过研究,将自己的收获总结在下面 目录 MATLAB GUI编程总结 目录 GUI 两种编程方式 使用 guide + 部分编程 全编程方式 两种方式的不同 编程步骤 第一种方式 第二种方式 常用控件及其属性 GUI 两种编程方式 m...
关于java中的Gui按钮的问题
今天在学习的时候,在Gui这一块遇到了点问题。 刚开始的代码是这样的 运行结果: 一直搞不明白是哪里的问题,刚开始还以为是编码格式有问题,又仔细的看了看所有的编码设置,都与之前设置的一样是UTF-8。上网百度的时候试了一些方法都没有效果。无意中在贴吧找到了答案。 链接: [http://tieba.baidu.com/p/3922897804] 修改过后的代码: 运行结果:
java GUI编程炫酷皮肤包
java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包
java之 22天 GUI 图形界面编程(一)
GUI(图形用户界面) import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /** * GUI(图形用户界面) * Graph
java中子类继承父类程序执行顺序
我们经常在项目中使用继承,但是往往不太明白,程序运行的顺序以及原理,尤其是使用上转型对象的时候,以及父类子类中都有static变量和方法时,不知道先运行谁。 下面是一个简单的继承,来查看代码的执行顺序: package test; class Person{ static{ System.out.println("父类的静态块"); } Person(){ Syste
Java GUI编程10---事件处理
事件处理 之前介绍了Swing的一些图形组件,一个图形界面制作完成了,在程序开发中只是完成了起步的工作。要想让一个组件都发挥自己的作用,就必须对所有的组件进行事件处理。 事件和监听器 先来了解什么是事件,事件就是表示一个对象的状态发生了变化。例如,每当一个按钮按下时,实际按钮的状态就发生了改变,那么此时就会产生一个事件,而如果需要事件的监听者不断的监听事件的变化,并根据这些事件进行相应的处理...
java ATM程序
基于java gui编程的atm小程序。 运用的输入输出流,gui编程,适合刚刚接触java的小白学习,有问题可发邮件
Java GUI编程中的事件处理机制详细讲解
1)事件:用户对程序的某一种功能性操作。 Java中的事件主要有两种: 1.组件类事件 componentEvent、ContainerEvent、WindowEvent、FocusEvent、PaintEvent、MouseEvent共六大类, 它们均是当组件
JS执行顺序问题
JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且在分析执行同一段代码中,定义式的函数语句会被提取出来优先执行。函数定义执行完后,才会按顺序执行其他代码。 先看看两个例子: 例子1: var hello = function(){ alert('hello,zhangsan'); } hello();//第一次调用,输出“hello,zhangsa
【源码】MATLAB GUI实例指导(41个例子,47个疑问解答)
MATLAB GUI的41个实例帮助大家学习如何在没有GUIDE的情况下编写图形用户界面程序。41个实例主要涉及以下47个问题: 如何在uicontrol中操作字符串?(见GUI_1, 2, 4, 5, 13, 14, 15, 20, 21, 22, 37) 如何使uicontrol可见/不可见?(见GUI_3, 10, 35) 如何制作多行编辑框?(见GUI_4) 如何初始化ed...
Java 各函数执行顺序
public class A { public int i=method(); public static int j=method2(); public int k=0; public A() { System.out.println(&quot;父类构造函数&quot;); } public int method() { System.out.println(&quot;父类普通方法&quot;); return 1; } p...
java图形界面GUI编程(持续更新)
文本编辑组件JTextField、JPasswordField、JTextArea 一、创建窗口程序 二、创建文本框、密码文本框、滚动文本区 三、创建按钮、单选按钮组和多选按钮组 四、创建密码验证窗口 五、流式布局管理器 六、边界布局管理器 七、网格布局管理器 ...
Matlab的GUI编程入门项目一:常用三角函数的绘制
Matlab入门一个星期啦,记录一下入门以来的第一个GUI(Graphical User Interface)的第一个例子; 首先,GUI编程在matlab中也是两种方式,一种是直接用代码控制各种控件和实现逻辑;另外一种,也是我们新手入门的捷径:通过GUIDE向导完成。这个类似于Android的Layout的实现方式。下面开始正题: 1,截面布局 新建一个GUI空白项目; 进入布局编辑器之后
java gui图形界面编程
转载学习转自:https://blog.csdn.net/u012891055/article/details/50095365看了下网上的gui教程都没有什么比较好的,不管是java、安卓还是ios,设计UI都应该先从布局上来考虑,而不是看一点写一点。如果你一来就想着用绝对布局,我只能说这种思想很危险,砖慢慢搬吧。这个是中期考试的时候边学边做的一个东西,做一个eclipse的搜索gui,类似下图...
多线程处理哲学家就餐问题(GUI动态演示)
利用Java的多线程机制,以GUI形式动态演示解决哲学家就餐问题。
Java中多态的方法调用顺序问题
这个标题起的有点大,我想说的重点并不是整个的顺序this.method(o)>super.method(o)>this.method((super)o)>super.method((super)o)这个顺序以及多态的详解可以参看一个经典实例理解java的三大特性之多态我在拜读这篇文章的时候很是赞赏,但是后来自己实践时发现了一些不一样的地方,于是在这里拉出来讨论。我在写方法时使用了toString方法
Java代码执行顺序总结
这个问题可能每个小伙伴学习Java的时候都遇到过,但恐怕很多时候都没重视。举个栗子来讲解,栗子有一部分copy了别人的代码。。 父类: package test; public class Father { public Father() { System.out.println("Father Constructor is running"); } public Father(i
ve eclipse 建立java可视化开发
ve eclipse 建立java可视化开发 java GUI编程开发环境 java GUI编程开发环境
java程序中方法执行的前后顺序
java程序中方法执行的前后顺序 Parent的static初始化块 Son的static初始化块 Parent的非静态初始化块 Parent的构造方法 Son的非静态初始化块 Son的构造方法 package circlewithprivatedatafields; //父类Parent class Parent { { Syst
java GUI程序的编写入门
    前些日子应着我们软件构造课程的实验要求,写一个java程序用以进行四种类图的文件读取和增删操作,可以命令行也可以GUI。那会儿我觉着GUI看上去很有意(bi)思(ge),就学着自己写了一下,先放成果图(请原谅我的配色……事实上确实很丑,因为我懒得美化了,真的不是审美问题啊喂!(#`O′))写之前在网上看了挺多教程了也,说的也都挺详细的。但是自己动手一写……emmmm又是这块儿报错又是那块儿...
java语言编程gui编程
java 语言 编程 gui 编程
JS中函数执行顺序的问题
作者:知乎用户 链接:https://www.zhihu.com/question/23564807/answer/82996422 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 JavaScript是一种描述型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行 如果你不能理解javaSc
文章热词 设计制作学习 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 gui课程学习 java gui布局学习 java