gpt4 book ai didi

java - 处理调整窗口大小并让按钮动态占用可用空间

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:59 27 4
gpt4 key购买 nike

我正在使用 ControlP5 API 进行处理来显示多个按钮。目前,我可以让按钮显示在草图的窗口中,但是当我调整框架大小时,按钮位置不会更新,是否有一种简单的方法可以重绘按钮,以便在调整窗口大小时自动重新定位它们,或者我是在浪费时间吗?

这是代码:

package controlp5userinterface;

import java.awt.event.*;
import java.util.ArrayList;
import processing.core.PApplet;
import processing.core.PImage;
import controlP5.*;


public class ControlP5UserInterface extends PApplet {

ControlP5 controlP5;
PImage bg;
Controller b;

@SuppressWarnings("deprecation")
public void setup() {
size(1000,1000);
smooth();

if (frame != null) {
frame.setResizable(true);
}

bg = loadImage("StockBackground1.jpg");

/*
*
* BEGIN CONTROL P5 MENU GENERATION
* buttons will spread out to fit available screen space
*/

controlP5 = new ControlP5(this);
ArrayList<Button> buttons = new ArrayList<Button>();
Group MainMenu = controlP5.addGroup("MainMenu");
MainMenu.setSize(100, 100);
//controlP5.addGroup("MainMenu");
controlP5.addButton("SIMON").setGroup("MainMenu").setSize(80, 50);

controlP5.addButton("ACN").setGroup("MainMenu").setSize(80, 50);
controlP5.addButton("GOOG").setGroup("MainMenu").setSize(80, 50);
//buttons.add(controlP5.addButton("AAPL").setGroup("MainMenu"));
//buttons.add(controlP5.addButton("ACN").setGroup("MainMenu"));
//controlP5.getGroup("MainMenu").setSize(300, 300);

}

/*
*
* SCREEN RESIZE CONTROLLER HERE??(non-Javadoc)
* @see processing.core.PApplet#draw()
*
*/

public void draw() {
background(0); // background black
controlP5.getGroup("MainMenu").update();

}

public int sketchWidth(){
return displayWidth;
}

public int sketchHeight(){
return displayHeight;
}

public static void main(String _args[]) {
PApplet.main(new String[] { controlp5userinterface.ControlP5UserInterface.class.getName() });
}

}

最佳答案

我遇到了类似的问题,尽管我对处理很陌生,但我找到了一种方法来使其发挥作用。为了使其工作,我所做的是将 GUI 元素放入 controlGroup 中,并在更新它之前(我使用自定义函数 setGUI() 进行的),由于窗口大小的更改,我使用函数 hide() 隐藏了 controlGroup,更新后我使用 show() 函数再次显示它。希望这能对您有所帮助。

关于java - 处理调整窗口大小并让按钮动态占用可用空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28588859/

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