- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 JDialog 中有一个以 JComboBox 开头的表单:
myJComboBox = new JComboBox(itemOfBox);
myJpanel.add(myJComboBox);
当我不关心我的默认 itemOfBox 是什么时,我默认显示一些 JSlider。
当我从 JDialog 用户界面更改 itemOfBox 时,我的 myJComboBox 上有一个 ActionListener,它会更改 itemOfBox 函数中的 JSlider(范围、默认值等)。到目前为止,一切正常,因为我不关心我的默认 itemOfBox。
现在我想保持所有这些工作,但要补充一点,如果我有一个 requiredItemOfBox,则能够将 myJComboBox 设置为它,而且还可以激活新 itemOfBox 上 myJComboBox 上的 ActionListener(现在是我的 requiredItemOfBox) )
myJComboBox.setSelectedItem(requiredItemOfBox);
因此,当我没有 requiredItemOfBox (在本例中为“”,因此前一行对程序没有任何作用)时,我的 JComboBox 的第一项具有默认值和默认 JSliders,当我选择列表中的另一项,我有我的 ActionListener 来处理它。
当我有 requiredItemOfBox (!) 时,我设法让 JDialog 选择它,但每次我都必须再次单击它来更新我的 JSliders。
我该如何解决这个问题?
感谢您的帮助,并对我的英语感到抱歉。
最佳答案
我在这里猜测一下。
由于您正在设置选定的项目,因此您可以自己执行操作监听器代码。诀窍是对你的 Action 监听器进行编码,就像我的一个项目中的这个监听器一样。
package com.ggl.crossword.controller;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import com.ggl.crossword.view.CrosswordFrame;
public class CreateImageActionListener implements ActionListener {
private CrosswordFrame frame;
private JPanel panel;
public CreateImageActionListener(CrosswordFrame frame,
JPanel panel) {
this.frame = frame;
this.panel = panel;
}
@Override
public void actionPerformed(ActionEvent event) {
writeImage();
}
public void writeImage() {
FileFilter filter =
new FileNameExtensionFilter("PNG file", "png");
JFileChooser fc = new JFileChooser();
fc.setFileFilter(filter);
int returnValue = fc.showSaveDialog(frame.getFrame());
if (returnValue == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
if (!file.getAbsolutePath().endsWith(".png")) {
file = new File(file.getAbsolutePath() + ".png");
}
RenderedImage image = createImage(panel);
try {
ImageIO.write(image, "png", file);
} catch (IOException e) {
e.printStackTrace();
}
}
}
private BufferedImage createImage(JPanel panel) {
int w = panel.getWidth();
int h = panel.getHeight();
BufferedImage bi = new BufferedImage(w, h,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
panel.paint(g);
g.dispose();
return bi;
}
}
您可以将监听器实例保留为类字段并执行listener.writeImage()
。这样,您就可以执行 Action 监听器代码,而不必触发 Action 监听器本身。
关于java - 激活 JComboBox 上的 ActionListener setSelectedItem(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22668701/
我在使用 JComboBox 的 setSelectedItem 方法时遇到问题。它只是不起作用。这是我的代码;我的站类和分区类都还可以。所以他们不包括在内。无论我尝试什么,我都无法将项目设置为组合框
我创建了一个包含三个项目的组合框。我正在尝试按索引和值设置所选项目。 当我执行 setSelectedIndex () 时,代码运行良好。 我正在尝试按值设置所选项目。所以我尝试创建另一个具有相同值(
我在设置自定义 JComboBox 的精确值时遇到问题。如果我从以下类的 initialize() 方法调用 setSelectedItem(),它不会选择特定值。 扩展的 JComboBox 类是:
设置所选项目的原始代码是: public void setSelectedItem(Object anObject) { Object oldSelection = selectedItemR
我的 jTable 第 8 列是美国州列。这是我的代码,用于使用适当的项目设置 jComboBox 以显示状态。 当我使用 Buffered Reader 填充 Jtable 时,下面的代码可以很好地
我试图在填充组合框之后在我的 JPanel 类的构造函数中设置 JComboBox 的 setSelectedItem。 我为文本框设置了值,但我不明白为什么 setSelectedItem 似乎不起
我的代码很简单......我想当我按下按钮时将面板中所有标签的文本设置为“”(无)/正在工作/并将所有组合框设置为值1。//这不起作用。它仅将 ArrayList amout 中的第一个组合框(七个组
我有一个JComboBox JComboBox tableChoose = new JComboBox(); tableChoose.addItem("Bill"); tableChoose.addI
我在 JDialog 中有一个以 JComboBox 开头的表单: myJComboBox = new JComboBox(itemOfBox); myJpanel.add(myJComboBox);
我有一个 JTable,我将三个 JComboBox 添加到三个不同的列。现在我想为我的每一行设置所选项目。问题是,我需要每一行的 ID 才能做到这一点。所以我尝试了不同的监听器,最好的结果是使用 F
我有一个包含多个组合框的程序,每个组合框都有自己的 Action 监听器。从任一组合框中选择一项将更改一个或多个其他组合框中的项目。我遇到的问题是,为一个组合框调用 setSelectedItem()
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 7 年前。 我无法理解为什么这段代码不起作用
本文整理了Java中org.pentaho.ui.xul.components.XulMenuList.setSelectedItem()方法的一些代码示例,展示了XulMenuList.setSel
我有一个在 JComboBox 中值更改事件时调用的方法 public void actionPerformed( ActionEvent e ) { Object source = e.ge
请看下面的代码片段, String[] choices = {"Apple", "Banana", "Custard"}; JComboBox fruits = new JCombo
我是一名优秀的程序员,十分优秀!