Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Java制作面板、框架等来显示图形?_Java_Swing_Graphics_Charts_Visualization - Fatal编程技术网

如何用Java制作面板、框架等来显示图形?

如何用Java制作面板、框架等来显示图形?,java,swing,graphics,charts,visualization,Java,Swing,Graphics,Charts,Visualization,注:我以前从未使用过swing,也没有使用过graphics 2D,而且我不太会编程 我想做的是制作一个以数组/向量为输入的程序。这个数组,其中每个索引0,1,2等包含0或1(int)-表示0,1,2等分钟内的“无活动”或“活动” 我希望程序根据作为输入的数组绘制一条不连续的水平直线,表示“活动”与“无活动”,作为时间的函数。 当我运行代码时,它会在面板中弹出。。 其想法是将活动/无活动显示为时间的函数,因此该线最好显示在图表中(x轴和y轴)。。。为了比较不同的情况,会有一些不连续的线在彼此上方

注:我以前从未使用过swing,也没有使用过graphics 2D,而且我不太会编程

我想做的是制作一个以数组/向量为输入的程序。这个数组,其中每个索引0,1,2等包含0或1(int)-表示0,1,2等分钟内的“无活动”或“活动”

我希望程序根据作为输入的数组绘制一条不连续的水平直线,表示“活动”与“无活动”,作为时间的函数。 当我运行代码时,它会在面板中弹出。。 其想法是将活动/无活动显示为时间的函数,因此该线最好显示在图表中(x轴和y轴)。。。为了比较不同的情况,会有一些不连续的线在彼此上方

我曾经尝试过使用swing和graphics 2D查看示例,但由于时间有限,我可能真的需要一些帮助

任何代码:

  • 创建一个面板、框架等,在这里我可以“轻松地”看到我可以插入图形的位置:这是一个面板,可以显示我将制作的图形
  • 根据上述数组绘制不连续水平线的图形
…非常感谢:)

从评论中添加:


抱歉-没有完成我的回答:)我肯定可以尝试学习如何在摆动框架、面板等中使用所有不同的东西。。但目前我的主要目标是完成我的学校作业-这是数据本身的可视化-他们并不真正关心你如何到达那里,最重要的是它可视化了一些有用的东西。。。所以我想,如果我有一些代码可以让我开始学习的话,我可以减少花在这上面的时间,而不必先了解它是如何工作的。

这是一个例子,我想它会有所帮助

import java.awt.*;
import javax.swing.*;

public class ActivityGraph extends JFrame {

int[] active = {0,1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1};
int length = 25, //basic length in pixels for drawing the lines
        offset = 50; //so the lines aren't sticked at the border

private ActivityGraph(String name, int x, int y, int width, int height) {
    super(name);
    setBounds(x, y, width, height);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    JPanel panel = new GraphPanel();
    //panel.setBounds(0, 0, 800, 400); not nessesary
    add(panel);
}

public static void main(String[] args) {
    new ActivityGraph("Activity Graph", 60, 60, 800, 400).setVisible(true);
}

private class GraphPanel extends JPanel {

    public void paint(Graphics g) {
        g.setColor(Color.white);
        g.fillRect(0, 0, 800, 400);
        //setting background (method setBackground() doesn't want to work for me)
        g.setColor(Color.black);
        for(int i = 0; i<active.length; i++) {
            if(active[i]==0) {
                g.drawLine(offset + i*length, offset + length, offset + i*length + length, offset + length);
            }
            else {
                g.drawLine(offset + i*length, offset, offset + i*length + length, offset);
            }
            /*
             * draw line from XY point to another XY point
             * notice that X = Y = 0 point is in left top corner
             * so higher Y values will mean "downer" points acctualy
             */
        }
    }

}

}
import java.awt.*;
导入javax.swing.*;
公共类ActivityGraph扩展了JFrame{
int[]active={0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,1};
int length=25,//用于绘制线条的基本长度(以像素为单位)
offset=50;//这样线就不会粘在边界上
私有活动图(字符串名称、整数x、整数y、整数宽度、整数高度){
超级(姓名);
立根(x、y、宽度、高度);
setDefaultCloseOperation(关闭时退出);
JPanel panel=新图形面板();
//面板立根(0,0,800,400);非必要
添加(面板);
}
公共静态void main(字符串[]args){
新的ActivityGraph(“ActivityGraph”,60,60,800,400).setVisible(true);
}
私有类GraphPanel扩展了JPanel{
公共空间涂料(图g){
g、 setColor(Color.white);
g、 fillRect(0,080400);
//设置背景(setBackground()方法不适合我)
g、 设置颜色(颜色为黑色);

对于(inti=0;i这是一个例子,我想这会有所帮助

import java.awt.*;
import javax.swing.*;

public class ActivityGraph extends JFrame {

int[] active = {0,1,1,0,0,0,1,0,1,0,1,0,1,1,1,1,0,0,1,0,1,1};
int length = 25, //basic length in pixels for drawing the lines
        offset = 50; //so the lines aren't sticked at the border

private ActivityGraph(String name, int x, int y, int width, int height) {
    super(name);
    setBounds(x, y, width, height);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    JPanel panel = new GraphPanel();
    //panel.setBounds(0, 0, 800, 400); not nessesary
    add(panel);
}

public static void main(String[] args) {
    new ActivityGraph("Activity Graph", 60, 60, 800, 400).setVisible(true);
}

private class GraphPanel extends JPanel {

    public void paint(Graphics g) {
        g.setColor(Color.white);
        g.fillRect(0, 0, 800, 400);
        //setting background (method setBackground() doesn't want to work for me)
        g.setColor(Color.black);
        for(int i = 0; i<active.length; i++) {
            if(active[i]==0) {
                g.drawLine(offset + i*length, offset + length, offset + i*length + length, offset + length);
            }
            else {
                g.drawLine(offset + i*length, offset, offset + i*length + length, offset);
            }
            /*
             * draw line from XY point to another XY point
             * notice that X = Y = 0 point is in left top corner
             * so higher Y values will mean "downer" points acctualy
             */
        }
    }

}

}
import java.awt.*;
导入javax.swing.*;
公共类ActivityGraph扩展了JFrame{
int[]active={0,1,1,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,1};
int length=25,//用于绘制线条的基本长度(以像素为单位)
offset=50;//这样线就不会粘在边界上
私有活动图(字符串名称、整数x、整数y、整数宽度、整数高度){
超级(姓名);
立根(x、y、宽度、高度);
setDefaultCloseOperation(关闭时退出);
JPanel panel=新图形面板();
//面板立根(0,0,800,400);非必要
添加(面板);
}
公共静态void main(字符串[]args){
新的ActivityGraph(“ActivityGraph”,60,60,800,400).setVisible(true);
}
私有类GraphPanel扩展了JPanel{
公共空间涂料(图g){
g、 setColor(Color.white);
g、 fillRect(0,080400);
//设置背景(setBackground()方法不适合我)
g、 设置颜色(颜色为黑色);

对于(int i=0;i无需学习
Graphics2D
,只管去做。以下是一个简单的入门方法(尽管需要至少的Java编程知识)

无需学习
Graphics2D
,只管去做。以下是一个简单的入门方法(不过需要至少的Java编程知识)

使用JPanel创建JFrame确实是你在Swing中应该学习的第一件事,你试过了吗?你能展示一下你试过的代码吗?嗯,我的第一个方法是尝试找到一些代码,这些代码在某种程度上满足了我的要求——因为我目前既不想学习Swing,也不想学习graphics。所以我发现了这个页面…抱歉-未完成我的回答:)我当然可以尝试学习如何在摇摆框架、面板等中使用所有不同的东西。但目前我的主要目标是完成我的学校作业——这是数据本身的可视化——他们并不真正关心你如何到达那里,最重要的是它可视化了一些有用的东西……所以我认为我可以E如果我有一些可以让我开始的代码,我就可以在这上面花更多的时间,而不必先了解它是如何工作的……我们不适合你。但是如果你有任何具体的问题,我们可以帮助你。使用JPanel创建JFrame确实是你在Swing中应该学习的第一件事,你试过了吗?你能展示一下你尝试过的代码吗我的第一个方法是尝试找到一些代码,这些代码在某种程度上符合我的要求——因为我目前并没有真正尝试学习Swing和graphics……所以我找到的是这个页面……对不起——没有完成我的回答:)我当然可以尝试学习如何在摇摆框架、面板等中使用所有不同的东西。但目前我的主要目标是完成我的学校作业——这是数据本身的可视化——他们并不真正关心你如何到达那里,最重要的是它可视化了一些有用的东西……所以我认为我可以如果我有时间的话,我可以在这上面花点时间吗