我的程序试图保存按钮组的状态,以便在程序结束时将其写入文件,或者在用户选择“返回”时恢复到按钮。
我以前发现过这个问题:
如何从按钮组中选择哪个JRadioButton
但是,我下面的代码在编译为ButtonGroup时出错,在ActionPerformed方法中使用时无法识别。
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Enumeration;
public class GraphicalInterface implements ActionListener
{
private static String[] tweetList =
{"/Users/Chris/Desktop/Code/Tweets/One.jpg", "/Users/Chris/Desktop/Code/Tweets/Two.jpg", "/Users/Chris/Desktop/Code/Tweets/Three.jpg",
"/Users/Chris/Desktop/Code/Tweets/Four.jpg", "/Users/Chris/Desktop/Code/Tweets/Five.jpg", "/Users/Chris/Desktop/Code/Tweets/Six.jpg",
"/Users/Chris/Desktop/Code/Tweets/Seven.jpg", "/Users/Chris/Desktop/Code/Tweets/Eight.jpg"};
private int[] answers = {4, 4, 4, 4, 4, 4, 4, 4};
private int currentTweet = 0;
JFrame surveyFrame = new JFrame("User Survey");
JPanel surveyPanel = new JPanel(new FlowLayout());
JButton buttonBack = new JButton("Back");
JButton buttonNext = new JButton("Next");
JButton buttonFinish = new JButton("Finish");
JRadioButton cred1 = new JRadioButton("Extrememly Credible");
JRadioButton cred2 = new JRadioButton("Credible");
JRadioButton cred3 = new JRadioButton("Somewhat Credible");
JRadioButton cred4 = new JRadioButton("Undecided");
JRadioButton cred5 = new JRadioButton("Somewhat Incredible");
JRadioButton cred6 = new JRadioButton("Incredible");
JRadioButton cred7 = new JRadioButton("Extrememly Incredible");
JLabel tweetLabel = new JLabel(new ImageIcon(tweetList[currentTweet]));
public void Interface()
{
surveyFrame.setVisible(true);
surveyFrame.setSize(500, 350);
surveyFrame.add(surveyPanel);
surveyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
surveyPanel.add(tweetLabel);
surveyPanel.add(buttonNext);
surveyPanel.add(buttonBack);
surveyPanel.add(buttonFinish);
surveyPanel.add(cred1);
surveyPanel.add(cred2);
surveyPanel.add(cred3);
surveyPanel.add(cred4);
surveyPanel.add(cred5);
surveyPanel.add(cred6);
surveyPanel.add(cred7);
cred4.setSelected(true);
ButtonGroup tweetCredibility = new ButtonGroup();
tweetCredibility.add(cred1);
tweetCredibility.add(cred2);
tweetCredibility.add(cred3);
tweetCredibility.add(cred4);
tweetCredibility.add(cred5);
tweetCredibility.add(cred6);
tweetCredibility.add(cred7);
buttonNext.addActionListener(this);
buttonBack.addActionListener(this);
buttonFinish.addActionListener(this);
}
public void actionPerformed(ActionEvent input)
{
Object source = input.getSource();
if (source == buttonNext)
{
if (currentTweet < tweetList.length-1)
{
answers[currentTweet] = getCredRating(tweetCredibility);
currentTweet++;
ImageIcon nextTweet = new ImageIcon(tweetList[currentTweet]);
tweetLabel.setIcon(nextTweet);
// restore button from next image
}
}
if (source == buttonBack)
{
if (currentTweet > 0)
{
answers[currentTweet] = getCredRating(tweetCredibility);
currentTweet--;
ImageIcon nextTweet = new ImageIcon(tweetList[currentTweet]);
tweetLabel.setIcon(nextTweet);
// restore button from previous image
}
}
if (source == buttonFinish)
{
// save answers to file
}
}
public int getCredRating(ButtonGroup input)
{
int n = 1;
for (Enumeration<AbstractButton> buttons = input.getElements(); buttons.hasMoreElements(); n++)
{
AbstractButton button = buttons.nextElement();
if (button.isSelected())
{
return n;
}
}
}
}
补丁:找不到变量推文可信度
知道为什么会这样吗?
谢谢
ButtonGroup tweetCredibility = new ButtonGroup();
将ButtonGroup定义为局部变量。只有GraphicalInterface()构造函数知道这一点。
您需要将按钮组定义为实例变量,以便该类的任何方法都可以使用它。因此,在定义JRadioButtons的地方定义ButtonGroup。
还有,surveyFrame。setVisibe(true)
语句应在所有组件添加到框架后作为构造函数的最后一条语句调用。
问题内容: 我有一个包含窗体上的单选按钮的swing应用程序。我有但是,望着可用的方法,我似乎不能得到所选择的名称。到目前为止,我可以说的是: 在ButtonGroup中,我可以执行来返回。从那里,我可以执行,但似乎并不总是可行。我尝试了不同的测试,但结果却无法预测。 另外,我可以从中获取枚举。但是,然后我将不得不遍历每个按钮,只是检查并查看它是否被选中。 有没有更简单的方法来找出已选择了哪个按钮
在一个项目中,我将ItemListener添加到一组JcheckBox和JRadioButtons中。 我希望当用户单击已经选择的JRadioButton时,它会被取消选择。 因为我知道的唯一方法是获取相应的ButtonGroup,然后调用clearSelection()方法。但在itemStateChanged()方法中,我有JtoggleButton选项=(JtoggleButton)事件。g
@覆盖公共void onItemSelected(SelectableItem SelectableItem){ }
在我的程序中,我想让用户能够将一个文件保存到他们选择的目录中。在做了一点研究之后,我发现了这个名为JFileChooser的俏皮类。我想做的是允许用户通过JFileChooser GUI转到他们想要的目录,为他们的文件键入一个名称,并允许他们将他们的文件保存到想要的目录。我试着在网上寻找一个解决方案,如何做到这一点,但几乎在我读到的所有地方,最后的答案都是“现在你必须让你的程序保存文件”,但我不知
好的,所以我已经制作了一个文本编辑器,到目前为止,它可以使用JFileChooser创建新文件和打开文件。 我正在努力做的是让文件的保存工作。每次添加或打开一些文件时,它都会向tabbedpane中添加一个新的选项卡,名称要么是文件1等,要么是打开的文件的名称。 另外,我如何使一个文件的当前选定标签textarea?我试过了,但不行: 所以我需要在textArea中创建一个字符串文件。
我有一个包含10个项目(书名)的Jlist。用户将被允许从10个项目中选择3个。我想将选定的项目保存到3个不同的字符串变量(例如book0、book1、book2等)。 我不知道该怎么做。