java - 如何创建 GUI 网格并将每个结果放入每个网格中?

标签 java swing user-interface gridview

我正在尝试创建一个像 GUI 一样大小的网格(5*5)。我尝试并制作了一个非常基本的网格,它工作得很好,但是当用户单击并放在每个 JPanel 上时,我试图更改它的背景颜色。但我还不知道Java中的GUI。所以想知道是否有人可以帮助我。

这是我的网格代码并匹配两个文件(情感词分析)

    public static TwitterSystem getObject()
    {
        if (Object==null)
            Object = new TwitterSystem();
        return Object;
    }
    long startTime = System.currentTimeMillis();

    long endTime = System.currentTimeMillis();
    long totalTime = endTime - startTime;

    //read jason from file into String
            //create a lot of tweet objects

    //run the tweetSystem
    public void Run()
    {
        double r;

        for (int i = 0; i < 5; i++)
              for (int j = 0; j < 5; j++)
                DataGrid[i][j] = 0.0;

        // trying to load the wordlist and tweets
        try
        {
             WordList = new Sentiment_Analysis("E:\\JAVA\\src\\wordlist.txt");

             Tweet = new Tweet_Reader("E:\\JAVA\\tweets.json");

        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }

        tweets = Tweet.getTweets();


        // for each tweet, we getting the rating and working out where it is in the grid.
        for(Tweet t : tweets) {
            r = WordList.getRating(t);

            if((int)t.getCoordinate().getLatitude() == 24 && (int)t.getCoordinate().getLongitude() == 54 ) {
                DataGrid[2][2] += r;
            }
            if((int)t.getCoordinate().getLatitude() == 25 && (int)t.getCoordinate().getLongitude() == 54 ) {
                DataGrid[0][1] += r;
            }

        }

        // printing out the score for each square.
        for (int i = 0; i < 5; i ++)
            for (int j = 0; j < 5; j++)
                System.out.format("[%4d][%4d] = %.4f\n", i, j, DataGrid[i][j]);
        System.out.println("Finish calculating");
        System.out.println("STATS - TIME: Analysis took "


                + TimeUnit.SECONDS.convert(totalTime, TimeUnit.MILLISECONDS)
                + " seconds");
    }




}

提前谢谢您!我对编程很陌生

到目前为止,网格工作正常,但我想在 GUI 中制作网格

请帮忙!!!

最佳答案

从这个完整的example开始,我添加了 ActionListener到网格中的每个 ButtonPanel。监听器更新封闭面板的背景颜色。请注意,每个按钮都使用自己的同一匿名类的实例。注释掉计时器的 start() 调用以更好地查看效果。作为练习,尝试将 ButtonPanel 类更改为工厂方法,例如 createButtonPanel(),如 here 所示。对于createGridPanel()

private static class ButtonPanel extends JPanel {

    public ButtonPanel(int i) {
        this.setBackground(new Color(rnd.nextInt()));
        JButton b = new JButton("Button " + String.valueOf(i));
        b.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JButton b = (JButton) e.getSource();
                ButtonPanel.this.setBackground(new Color(rnd.nextInt()));
            }
        });
        this.add(b);
    }
}

image

关于java - 如何创建 GUI 网格并将每个结果放入每个网格中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307580/

相关文章:

mysql - 适用于 Windows 的 Sequel Pro 替代品

c++ - Qt 使用来自 csv 的数据自动生成按钮

java - Java中处理渲染异常?

java - Java 中的嵌入式 NIO http 客户端/服务器

java - COBOL 和 Java 的架构

java - 半透明的 jPanels

java - JButtons 没有出现在 JPanel 上

java - 为什么我的 Java 代码返回内存地址而不是字符串?

java - 更改 JTextArea 中特定行的字体

javascript - 与 Backbone 配合良好的 UI 移动框架?