如何在jLabel中显示String?

时间:2010-11-28 02:19:33

标签: java string swing jbutton jlabel

首先,请放心,我已经阅读了所有Oracle Java文章&现在教程大约6次,所以如果你能提供帮助,你必须比提供Oracle页面的链接做得更好。对不起,如果这听起来很粗鲁。

显然我不知道Strings是如何工作的。我试图让4个jButton在推送时将它们的值发送到字符串,这样只有被推送的最后一个按钮才会在字符串或值中记录它(名称,文本,无论什么工作),这样我就可以连接它值为jLabel的消息。

所以这里有2个问题,我不能设置正确的“状态”按钮,然后我需要能够获取值并将其放入jLabel。

通过查看此屏幕截图,您可以看到我被困在哪里: http://krisbunda.com/gui2.png

查看“null”的位置,而不是4个“状态”按钮中的1个值(“已发货”或“已加载”等)

    private void shippedButtonHandler(java.awt.event.ActionEvent evt) {                                      
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(loadedButton.getText());
}                                     

private void loadedButtonHandler(java.awt.event.ActionEvent evt) {                                     
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(loadedButton.getText());
}                                    

private void outReadyButtonHandler(java.awt.event.ActionEvent evt) {                                       
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(outsideReadyButton.getText());
}                                      

private void outNotReadyButtonHandler(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(outsideNotReadyButton.getText());
}                                         

private void enterButtonHandler(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    Confirmation.setVisible(true);
    Confirmation.setBounds(300,200,900,400);
    Confirmation.setModal(rootPaneCheckingEnabled);
    confirmationLabel.setText("You are about to send this message:"
            + "\n #" + display.getText()+ " is currently " + status);
}

private void confirmationNoButtonHandler(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    Confirmation.dispose();
}

非常感谢任何帮助。

修改

感谢您的帮助,这是我为“新线”问题找到的解决方法:我使用了2个JLabel。 GUI for JLabel new line

并编码如下:

    private void enterButtonHandler(java.awt.event.ActionEvent evt) {                                    
    // TODO add your handling code here:
    Confirmation.setVisible(true);
    Confirmation.setBounds(200,300,1000,400);
    Confirmation.setModal(rootPaneCheckingEnabled);
    confirmationLabel1.setText("You are about to send this message:");
    confirmationLabel2.setText("PS# " + display.getText()+ " is currently " + status);
}                                   

这里有一段代码来说明“充满鳗鱼的气垫船”所解决的修复方法:

1。)添加非局部变量/字符串:

public class PlanterStatusUI extends javax.swing.JFrame
   {
    /** Creates new form PlanterStatusUI */
    public PlanterStatusUI() {
        initComponents();
    }

    public String status = new String(); {
    }

2.)更改按钮代码:

    private void shippedButtonHandler(java.awt.event.ActionEvent evt) {                                      
    // TODO add your handling code here:
    status = shippedButton.getText();
}                                     

2 个答案:

答案 0 :(得分:1)

上述方法中的状态变量都在方法中声明,因此仅在方法中可见。方法结束后,变量将立即消失。最好更改在类本身中声明的StringBuilder变量。

例如,我将状态设置为String字段/变量,而不是StringBuilder,而不是局部变量,并更改按钮处理程序方法,如下所示:

  private void outReadyButtonHandler(java.awt.event.ActionEvent evt) { 
      status = outsideReadyButton.getText();
  }                                      

答案 1 :(得分:0)

example显示了每次点击按钮时如何更新标签。