You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数组中的logX、logY等参数转化为Logs类实例

解决Logs对象创建的问题

嗨,我来帮你搞定这个问题!从你给出的代码来看,当前的Logs类只有私有成员变量,但没有对外提供初始化这些变量的途径——这就是你没法用logX、logY这类参数创建对象的核心原因。咱们一步步来解决:

第一步:给Logs类添加构造方法

因为X、Y、width、height都是私有变量,外部代码没法直接修改它们,所以我们需要给Logs类加一个构造器,在创建对象时把参数传递进去初始化这些变量。如果之后要显示窗口,也可以在构造器里做一些基础配置:

package Frogger;
import javax.swing.JFrame;
public class Logs extends JFrame {
    private int X;
    private int Y;
    private int width;
    private int height;

    // 添加构造器,接收初始化参数
    public Logs(int x, int y, int logWidth, int logHeight) {
        this.X = x;
        this.Y = y;
        this.width = logWidth;
        this.height = logHeight;

        // 可选:如果要显示窗口,这里可以加基础配置
        setSize(logWidth, logHeight);
        setLocation(x, y);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 可以设置窗口标题、背景色等其他属性
    }

    // 如果你之后需要修改参数,还可以加setter方法,比如:
    public void setX(int x) {
        this.X = x;
        setLocation(x, this.Y); // 同步更新窗口位置
    }
}

第二步:从参数数组创建Logs对象

假设你的参数数组是按每个Log的X、Y、width、height依次排列的格式存储的(比如[log1X, log1Y, log1Width, log1Height, log2X, log2Y, ...]),我们可以通过循环遍历数组,每4个元素创建一个Logs对象:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 示例参数数组:两个Log的参数
        int[] logParams = {100, 200, 300, 50, 150, 250, 300, 50};
        List<Logs> logObjects = new ArrayList<>();

        // 遍历数组,每4个元素创建一个Logs对象
        for (int i = 0; i < logParams.length; i += 4) {
            // 防止数组越界:如果剩余元素不足4个,停止循环
            if (i + 3 >= logParams.length) {
                break;
            }
            int x = logParams[i];
            int y = logParams[i + 1];
            int width = logParams[i + 2];
            int height = logParams[i + 3];

            // 创建Logs对象并加入列表
            Logs newLog = new Logs(x, y, width, height);
            logObjects.add(newLog);

            // 如果要立即显示这个Log窗口,调用:
            // newLog.setVisible(true);
        }

        // 现在logObjects里就是你需要的Logs对象集合啦
    }
}

额外说明

  • 如果你的参数数组格式不是每4个元素一组,只需要调整循环的逻辑,按你的参数排列规则提取对应的X、Y、width、height即可。
  • 因为Logs继承了JFrame,创建对象后调用setVisible(true)就能在屏幕上显示窗口了,你还可以在构造器里添加更多UI配置(比如背景色、边框等)让它更符合需求。

内容的提问来源于stack exchange,提问作者Fiachra Kelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:22:07