2016-07-28 6 views
-4

文字列の長さを見つけるプログラムを作成しました。文字列の長さを見つけるプログラムを作成します

この私のコード:

JTInputString = JTextfild (For input) 
    JLResult = Jlabel (For Show Lenght) 



    /* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package UIs; 

/** 
* 
* @author Mr-Enginner 
*/ 
public class String extends javax.swing.JFrame { 

    /** 
    * Creates new form String 
    */ 
    public String() { 
     initComponents(); 
    } 

    /** 
    * This method is called from within the constructor to initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is always 
    * regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    public static void main(java.lang.String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new String().setVisible(true); 
      } 
     }); 
    } 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     JTInputString = new javax.swing.JTextField(); 
     JBCalculate = new javax.swing.JButton(); 
     jLabel1 = new javax.swing.JLabel(); 
     JLResult = new javax.swing.JLabel(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     JBCalculate.setText("محاسبه طول رشته"); 
     JBCalculate.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       JBCalculateActionPerformed(evt); 
      } 
     }); 

     jLabel1.setText("طول رشته :"); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(JTInputString) 
       .addContainerGap()) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(134, 134, 134) 
       .addComponent(JBCalculate) 
       .addContainerGap(147, Short.MAX_VALUE)) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
       .addComponent(JLResult) 
       .addGap(104, 104, 104) 
       .addComponent(jLabel1) 
       .addGap(43, 43, 43)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(45, 45, 45) 
       .addComponent(JTInputString, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(18, 18, 18) 
       .addComponent(JBCalculate) 
       .addGap(39, 39, 39) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(jLabel1) 
        .addComponent(JLResult)) 
       .addContainerGap(115, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold>       

    private void JBCalculateActionPerformed(java.awt.event.ActionEvent evt) {            
     Lenght(); 
     Clearform(); 
    }           

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(String.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(String.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(String.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(String.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the form */ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new String().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JButton JBCalculate; 
    private javax.swing.JLabel JLResult; 
    private javax.swing.JTextField JTInputString; 
    private javax.swing.JLabel jLabel1; 
    // End of variables declaration     

public void Lenght(){ 
     String Str=JTInputString.getText(); 
     int str=Str.length(); 
     JLResult.setText(""+str); 
} 
public void Clearform(){ 
    JTInputString.setText(""); 
    JLResult.setText(""); 
} 



} 

と私はこのコードを使用しました。しかし、任意のものを示していない:

java.lang.String Str = JTInputString.getText(); 
int str = Str.length(); 
JLResult.setText("" + str); 

をしかし、それは私がJLResultにカウント表示されません。

問題が何ですか?

エラー

スレッドの例外 "AWT-EventQueueの-0" java.lang.RuntimeException:互換性のないソースコード - 互換性のない型:java.lang.Stringでは、UIがでUIs.String に変換することができません。 UIs.String.JBCalculateActionPerformed(String.java:90)のString.Lenght(String.java:137) UIs.String.access $ 000(String.java:12)の のUIs.String $ 2.actionPerformed(String。 java:47) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.j AVA:2348)javax.swing.plaf.basic.BasicButtonListener.mouseReleasedでjavax.swing.DefaultButtonModel.setPressedでjavax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) (DefaultButtonModel.java:259) (AT (Component.java:6533) (javax.swing.JComponent.processMouseEvent(JComponent.java:3324)) (java.awt.Component.processEvent(Component)) のコンポーネントです。 java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java: 2294) at java.awt.Component.dispatchEvent(Component.java:4 711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access $ 500(EventQueue.java:97) at java.awt.EventQueue $ 3.run(EventQueue.java:709) at java.awt.EventQueue $ 3.run(EventQueue.java:703) at java.security.AccessCont java.awt.EventQueueのすべてjava.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilegeですべてjava.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) (ProtectionDomain.java:86) でroller.doPrivileged(ネイティブメソッド) $ 4.run(EventQueue.java:731) at java.awt.EventQueue $ 4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(ネイティブメソッド) at java.security.ProtectionDomain $ JavaSecurityAccessImpl。 java.awt.EventDispatchThreadでjava.awt.EventDispatchThread.pumpOneEventForFiltersでjava.awt.EventQueue.dispatchEvent(EventQueue.java:728) でdoIntersectionPrivilege(ProtectionDomain.java:76) (EventDispatchThread.java:201) 。java.awt.EventDispatchThread.pumpEventsでjava.awt.EventDispatchThread.pumpEventsでjava.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) でpumpEventsForFilter(EventDispatchThread.java:116) (EventDispatchThread.java:101) ( EventDispatchThread.java:93) java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

+3

私は問題の正確な状況を明確にするために、[MCVE](http://stackoverflow.com/help/mcve)を投稿お勧めします。 – copeg

+2

あなたは冗談だよね?あなたはすでに 'Str.length()'でそれを持っています。 forループは不要です。あなたのメソッドはlengthと呼ばれ、Stringの前にjava.langは必要ないので、変数は小文字で始まる必要があります。希望が助けてくれます:) – ManoDestra

+0

'String str = JTInputString'を使用しているときエラーが表示されます – Kianoush

答えて

2

ラベルのテキストを設定してすぐに消去します。

代わり
private void JBCalculateActionPerformed(java.awt.event.ActionEvent evt) { 
    Lenght(); 
    Clearform(); // <-- Remove this line 
} 

public void Clearform() { 
    JTInputString.setText(""); 
    JLResult.setText(""); // <-- Remove this line 
} 
+0

ありがとうございました。その仕事。 – Kianoush

+0

あなたが実際にあなたの問題ではなかった場合、投稿したスタックトレースのポイントは何ですか? – ManoDestra

1

で、ここでの答えは、より適切にあなたのクラスを指定することです。 java.lang.StringとJFrame UIs.Stringの間に命名の衝突があります。

名前の衝突を避けるために、メインフレームのTestFrameなど、アプリケーションにとって意味のあるものを呼び出します。

また、変数名がすべて小文字で始まっていることを確認してください。あなたは変数を現時点ではクラスのように見せています。標準のJavaコーディング標準と規約に従わないと、後で多くの問題に終わるでしょう。

GoogleのJava標準は、どれも優れています。 check them outをお勧めします。

EDIT:

この答えはコンパイルできないことについて、スタックトレースなど、あなたの投稿の質問に与えられました。

Clearform()メソッドに関する問題が、コントロールの値を消去していたため発生しました。 Clearform()に関する問題は、この現在の質問とは別の質問であったはずです。

+0

番号。私はlang.stringのために推測する。私がこのString Show Errorを使用したとき – Kianoush

+0

スタックトレースを参照してください: 'Uncompilable source code-compatible type:java.lang.Stringを' – ManoDestra

+1

'のUIs.Stringに変換することはできません。時間がありがとう – Kianoush

関連する問題