gpt4 book ai didi

java - 以编程方式从组件中创建和选择值 - Swing

转载 作者:行者123 更新时间:2023-12-01 12:49:25 25 4
gpt4 key购买 nike

我有这个方法,可以在单击时向 JPanel 添加一些指令、按钮和 JLabel,但我需要某种方法来选择这三个元素,以便我可以设置它们的样式,我正在使用迭代所有组件的解决方案并找到我想要设置样式的样式,但它不允许我设置 JPanel 的边框,当您查看可用方法时,这不是一个选项。是否有办法在底部循环中设置 JLabel 的边框?或者单独选择每个元素的方法。

当用户单击不同 JPanel 上的按钮时,GenerateImageArea 方法将运行。

public void GenerateImageArea(int id)
{
areaHeight += 200; // Extends JPanel

i++;

gbc.gridx = 0;
gbc.gridy = i;
gbc.gridwidth = 4;
gbc.anchor = GridBagConstraints.LINE_START;
// Add the instructions JLabel
add(new JLabel("["+ (id+5) + "]: Select an image of maximum dimensions 720 * 350 pixels."), gbc);

i++;
gbc.gridx = 0;
gbc.gridy = i;
gbc.gridwidth = 1;
gbc.anchor = GridBagConstraints.LINE_START;
// Add a button to load an image
add(new JButton("Load Image"));

gbc.gridx = 1;
gbc.gridwidth = 3;
// Add the JLabel which acts as a space to display the image
add(new JLabel(""));

// Set colour + font of the instructions JLabel
for (int i = 0; i < this.getComponentCount(); i++) {
Component comp = this.getComponent(i);
if (comp.toString().contains("]:")) {
comp.setForeground(Settings.SITE_GREEN);
comp.setFont(Settings.SUBTITLEFONT);
}
else if (comp.toString().contains("")) {
// I need to change the border of the second JLabel
}
}
}

与此类似,我需要以编程方式添加 JTextAreas,然后在用户单击提交后设置样式并从中检索数据。我如何以编程方式添加组件但之后能够提取输入?

最佳答案

您无需查找要设置样式的元素,而是可以直接设置它们的样式。例如,不要这样做:

add(new JLabel("["+ (id+5) + "]: Select an image of maximum dimensions 720 * 350 pixels."), gbc);

你可以这样做:

// Create instruction label
JLabel instruction = new JLabel("["+ (id+5) + "]: Select an image of maximum dimensions 720 * 350 pixels.");
// Style it
instruction.setForeground(Settings.SITE_GREEN);
instruction.setFont(Settings.SUBTITLEFONT);
// Add it.
add(instruction, gbc);

我相信这种方法更简单,而且更不容易出错。

关于java - 以编程方式从组件中创建和选择值 - Swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24355148/

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