加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java GUI分配数组值

发布时间:2020-12-15 01:03:11 所属栏目:Java 来源:网络整理
导读:有一个Paraview用户界面如下吸引我. 我认为这个接口可以用来为数组赋值.它的工作原理如下: 我想将它实现为Java程序,但我发现没有Java API可以支持我的想法.与我最接近的设计是添加多个JSlider,如下所示: 但是,如果它是一个100大小的阵列,我不想添加100个JS

有一个Paraview用户界面如下吸引我.

Paraview control UI

我认为这个接口可以用来为数组赋值.它的工作原理如下:

array

我想将它实现为Java程序,但我发现没有Java API可以支持我的想法.与我最接近的设计是添加多个JSlider,如下所示:

enter image description here

但是,如果它是一个100大小的阵列,我不想添加100个JSliders.你有更好的解决方案吗?

最佳答案
好的,所以这是一个非常基本的例子.它需要更多的工作和优化,但应该让你朝着正确的方向前进

有关详细信息,请查看Painting in AWT and Swing,Performing Custom Painting,2D Graphics和How to Write a Mouse Listener

Array Graph

import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Path2D;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class TestGraph {

    public static void main(String[] args) {
        new TestGraph();
    }

    public TestGraph() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new GraphPane(0,100,new int[100]));
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public static class GraphPane extends JPanel {

        protected static final int COLUMN_WIDTH = 10;
        protected static final int VERTICAL_INSETS = 10;

        private int[] data;
        private int minValue,maxValue;
        private Path2D.Double graph;
        private List

在任何人说我没有填写“填充”之前,我故意使用Path2D使其更简单地实现;)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读