2016-10-22 7 views
-1

というタイトルでは、コードの結果に応じてJFrameに3つの画像のうちの1つを表示したいと考えています。コード内の結果に応じてJFrameがイメージを表示する方法は?

Equilatero、Escaleno及び二等辺の結果である:

結果を決定するコードは、これです。すでに画像についてimageIconsを作成する方法を知っていると仮定すると、

private void CActionPerformed(java.awt.event.ActionEvent evt) {         
 
     double la,lb,lc; 
 
     double a; 
 
     double p; 
 
     String t=null; 
 
     
 
     la=Double.parseDouble(LA.getText()); 
 
     lb=Double.parseDouble(LB.getText()); 
 
     lc=Double.parseDouble(LC.getText()); 
 
     
 
     if (la==lb && la==lc){ 
 
     t=("Equilatero"); 
 
    }else if (la==lb || lb==lc || la==lc) { 
 
     t=("Isósceles"); 
 
    }else if (la!=lb || lb!=lc || la!=lc) { 
 
     t=("Escaleno");  
 
    } 
 
    if (lb+lc>la && la+lc>lb && la+lb>lc){ 
 
    a=Math.sqrt((la+lb+lc)*(-la+lb+lc)*(la-lb+lc)*(la+lb-lc)/16); 
 
    p=la+lb+lc; 
 
    //A.setText("El area del triangulo "+t+" es ("+a+")."); 
 
    A.setText("El triangulo "+t+" tiene un area de ("+a+") y un perimetro de ("+p+")."); 
 
    } else { 
 
    A.setText("Los valores ("+la+"), ("+lb+") y ("+lc+") no corresponden a los lados de un triangulo."); 
 
    } 
 
    }     

+0

はすでに各画像のimageiconsがありますか? –

+0

コードレビュー項目:変数名が短すぎて、これを読んだ他の誰にとっても意味がありません。 'la'、' lb'、 'lc'、' a'などの名前は、コードを非常に理解しにくくします。 –

+0

別のレビュー項目:大文字で始まる変数名を使用することは[Java命名規則](http://www.oracle.com/technetwork/java/codeconventions-135099.html)に従いませんので、 'LA'、' LB 'などは大文字で始めるべきではないクラスです。 –

答えて

0

、あなたがする必要があるすべてはあなたのフレームにJPanelのを追加したものにするJLabelを追加することです。文字列の結果に応じて、jlabelのアイコンを対応するイメージに設定します。

//create panel and jlabel 
JPanel panel = new JPanel(); 
JLabel label = new JLabel(); 

//add the label to the panel, and the panel to the frame. 
panel.add(label); 
yourFrame.add(panel); 

//Check what image you want 
if(t.equals("Equilatero")){ 
    label.setIcon(example1Image); 
else if(t.equals.... 
1

まずに、それはあなたがそれがはるかに簡単だ代わりに何ができるか... JFrameに画像を設定するための痛みだJLabelまたはJPanelを作成し、その画像を設定し、JLabelまたはJPanelを追加していますJFrameに言われて、あなたは結果である三角形の種類を把握するためにswitch文を行うことができることを

JFrame frame = new JFrame(); 
JLabel label = new JLabel(); //or JPanel if that's what you prefer 
ImageIcon equil = new ImageIcon("filepath/to/this/image"); 
ImageIcon escal = new ImageIcon("filepath/to/this/image"); 
ImageIcon isosc = new ImageIcon("filepath/to/this/image"); 
frame.add(label); 
switch(t) { 
     default: { 
      label.setIcon(null); 
     } 

     case "Equilatero": { 
      label.setIcon(equil); 
     } 

     case "Escaleno": { 
      label.setIcon(escal); 
     } 

     case "Isosceles": { 
      label.setIcon(isosc); 
     } 
    } 
関連する問題