gpt4 book ai didi

java - 使用用户指定的计时器更新图形用户界面中的 JPanel 和属性?

转载 作者:搜寻专家 更新时间:2023-11-01 01:56:19 24 4
gpt4 key购买 nike

所以我有这门课。我们称它为 ProcessBox。我有另一个名为 Process 的类,它有一个 ProcessBox 作为成员变量。然后,在我的主要方法中,我有一个 Process 对象的 ArrayList(每个对象都有自己的 ProcessBox)。我将如何着手制作它以便我的 ProcessBox 每 x 毫秒更新一次(其中 x 是用户指定的。我已经完成了输入 x 的监听器)。下面是我的 ProcessBox 类。这就是我希望每 x 毫秒重绘的内容(除了它们的整个列表)。

import java.awt.*;

import javax.swing.*;
import javax.swing.border.LineBorder;

import java.util.*;

public class ProcessBox extends JPanel {
GridBagLayout gbc_panel;

public ProcessBox(Process p) {
super(new GridBagLayout());
gbc_panel = new GridBagLayout();
gbc_panel.columnWidths = new int[] { 0, 0, 0 };
gbc_panel.rowHeights = new int[] { 0, 0, 0, 0, 0, 0 };
gbc_panel.columnWeights = new double[] { 0, 0, Double.MIN_VALUE };
gbc_panel.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0,
Double.MIN_VALUE };
super.setLayout(gbc_panel);


setPreferredSize(new Dimension(110, 110));
setMinimumSize(new Dimension(110, 110));
setAlignmentX(Component.LEFT_ALIGNMENT);
setBorder(new LineBorder(new Color(0, 0, 0), 1));
setSize(new Dimension(110, 110));

String name = p.getName();
int priority = p.getPriority();
int minPriority = p.getMinPriority();
ArrayList<Integer> times = p.getTime();
Random r = new Random(System.currentTimeMillis());
setBackground(new Color(r.nextInt(255 - 210) + 210,
r.nextInt(255 - 210) + 210, r.nextInt(255 - 210) + 210));

JLabel lblNewLabel = new JLabel("ID:");
GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
gbc_lblNewLabel.gridheight = 2;
gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
gbc_lblNewLabel.gridx = 0;
gbc_lblNewLabel.gridy = 0;
add(lblNewLabel, gbc_lblNewLabel);

JLabel lblNewLabel_1 = new JLabel(name);
GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints();
gbc_lblNewLabel_1.gridheight = 2;
gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 0);
gbc_lblNewLabel_1.gridx = 1;
gbc_lblNewLabel_1.gridy = 0;
add(lblNewLabel_1, gbc_lblNewLabel_1);

JLabel lblNewLabel_2 = new JLabel("Priority:");
GridBagConstraints gbc_lblNewLabel_2 = new GridBagConstraints();
gbc_lblNewLabel_2.insets = new Insets(0, 0, 5, 5);
gbc_lblNewLabel_2.gridx = 0;
gbc_lblNewLabel_2.gridy = 2;
add(lblNewLabel_2, gbc_lblNewLabel_2);

JLabel lblNum = new JLabel(Integer.toString(priority));
GridBagConstraints gbc_lblNum = new GridBagConstraints();
gbc_lblNum.insets = new Insets(0, 0, 5, 0);
gbc_lblNum.gridx = 1;
gbc_lblNum.gridy = 2;
add(lblNum, gbc_lblNum);

JLabel lblNewLabel_3 = new JLabel("Min:");
GridBagConstraints gbc_lblNewLabel_3 = new GridBagConstraints();
gbc_lblNewLabel_3.insets = new Insets(0, 0, 5, 5);
gbc_lblNewLabel_3.gridx = 0;
gbc_lblNewLabel_3.gridy = 3;
add(lblNewLabel_3, gbc_lblNewLabel_3);

JLabel lblMp = new JLabel(Integer.toString(minPriority));
GridBagConstraints gbc_lblMp = new GridBagConstraints();
gbc_lblMp.insets = new Insets(0, 0, 5, 0);
gbc_lblMp.gridx = 1;
gbc_lblMp.gridy = 3;
add(lblMp, gbc_lblMp);

JLabel lblTimeSlice = new JLabel("Slice:");
GridBagConstraints gbc_lblTimeSlice = new GridBagConstraints();
gbc_lblTimeSlice.insets = new Insets(0, 0, 0, 5);
gbc_lblTimeSlice.gridx = 0;
gbc_lblTimeSlice.gridy = 4;
add(lblTimeSlice, gbc_lblTimeSlice);

JLabel lblLeft = new JLabel(Integer.toString(times.get(0)));
GridBagConstraints gbc_lblLeft = new GridBagConstraints();
gbc_lblLeft.gridx = 1;
gbc_lblLeft.gridy = 4;
add(lblLeft, gbc_lblLeft);
setVisible(true);

}

最佳答案

关于java - 使用用户指定的计时器更新图形用户界面中的 JPanel 和属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8237085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com