我这里有这个代码,这是一个带按钮的标签,当点击按钮时,标签会增加一个:
int helpfulNumber = content.getHelpful();
JButton helpfulBT = new JButton("Helpful");
reviewBoxPanel.add(helpfulBT);
JLabel helpfulLB = new JLabel("Helpful: " + helpfulNumber);
reviewBoxPanel.add(helpfulLB);
helpfulBT.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event)
{
int helpfulNumber = content.getHelpful();
int newHelp = helpfulNumber + 1;
helpfulLB.setText("Helpful:" + newHelp);
}
});
helpfulLB.setText("Helpful: " + newHelp); // this doesn't work
在下面的代码中,单击提交时,我需要获取标签的值,但新值为helpfulNumber
。就像现在一样,它似乎只能获得标签的旧值
final JButton submitBT = new JButton("Submit");
southPanel.add(submitBT);
submitBT.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == submitBT)
{
MovieReview some = new MovieReview();
some.setUser(userTF.getText());
some.setMovie(titleTF.getText());
some.setFeatured(featuredCB.isSelected());
some.setRating(Integer.parseInt(ratingTF.getText()));
some.setHelpful(helpfulNumber);
some.setUnhelpful(notHelpfulNumber);
some.setComments(reviewTA.getText());
some.setId(content.getId());
if(owner.updateReview(isUpdate, some))
{
// success
try {
MovieReviewDSC.edit(some);
//tableModel.fireTableRowsInserted(firstRow, lastRow);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JOptionPane.showMessageDialog(ReviewEditor.this, "Database succesfully updated!");
}
else
{
// fail
}
}
}
});
所以我的想法是,当这个框架打开时,content
中已存在可能不是0的值。目前,如果我单击按钮增加并单击“提交”,则该数字保持为原始状态值。
我已尝试在helpfulLB.setText("Helpful: " + newHelp);
actionListener之外再次使用helpfulBT
,但无法识别newHelp
变量。任何帮助将不胜感激,谢谢你的时间。
解决方案感谢@ tiago7和@Boosha
helpfulNumber = content.getHelpful();
JButton helpfulBT = new JButton("Helpful");
reviewBoxPanel.add(helpfulBT);
JLabel helpfulLB = new JLabel("Helpful: " + helpfulNumber);
reviewBoxPanel.add(helpfulLB);
helpfulBT.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event)
{
helpfulNumber += 1;
helpfulLB.setText("Helpful:" + helpfulNumber);
}
});
同时在框架中声明int helpfulNumber
。谢谢大家,我很感激帮助
答案 0 :(得分:1)
在侦听器外部声明newHelp,并通过删除int声明在侦听器中使用它。
答案 1 :(得分:1)
似乎你试图提交类似于' Like'社交网络中的行动。
只需在框架中声明变量即可保留您的“有用”字样。值。
初始化,当您加载数据时,在按钮ActionListener中递增它并在提交操作中读取它。
您只需要为此变量提供全局范围,因此可以从所有侦听器访问它。