解決済み

GUIを使用した電卓のボタンの表示について

  • 困ってます
  • 質問No.9610708
  • 閲覧数73
  • ありがとう数3
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

Javaの課題で電卓を制作しています。
まず見た目だけ完成させるべくボタンを配置を配置しましたが、
実行してみると正しく表示されるときと、されないときがあります(画像参照)。
現時点でのコードを掲載いたしますので、是非アドバイスをいただけると幸いです。よろしくお願いします。

■以下コード
package add;

import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Calc extends Frame{

public static void main(String[] args){
Calc frame = new Calc();
}

public Calc(){
super("電卓");
setSize(317,360);
setVisible(true);

addWindowListener(new CalcWindow());//下記のウィンドウを閉じる用


//ボタンとフィールドの追加

TextField result = new TextField("");
result.setBounds(20,50,270,50);
add(result);
result.setFocusable(false);

Button button1 = new Button("1");
button1.setBounds(20,120,70,30);
add(button1);

Button button2 = new Button("2");
button2.setBounds(100,120,70,30);
add(button2);

Button button3 = new Button("3");
button3.setBounds(180,120,70,30);
add(button3);

Button button4 = new Button("4");
button4.setBounds(20,165,70,30);
add(button4);

Button button5 = new Button("5");
button5.setBounds(100,165,70,30);
add(button5);

Button button6 = new Button("6");
button6.setBounds(180,165,70,30);
add(button6);

Button button7 = new Button("7");
button7.setBounds(20,210,70,30);
add(button7);

Button button8 = new Button("8");
button8.setBounds(100,210,70,30);
add(button8);

Button button9 = new Button("9");
button9.setBounds(180,210,70,30);
add(button9);

Button button0 = new Button("0");
button0.setBounds(100,255,70,30);
add(button0);

Button buttonC = new Button("C");
buttonC.setBounds(20,255,70,30);
add(buttonC);

Button buttonasta = new Button(".");
buttonasta.setBounds(180,255,70,30);
add(buttonasta);

Button buttonplus = new Button("+");
buttonplus.setBounds(260,120,30,30);
add(buttonplus);

Button buttonminus = new Button("-");
buttonminus.setBounds(260,165,30,30);
add(buttonminus);

Button buttonkakeru = new Button("×");
buttonkakeru.setBounds(260,210,30,30);
add(buttonkakeru);

Button buttonsla = new Button("/");
buttonsla.setBounds(260,255,30,30);
add(buttonsla);

Button buttonE = new Button("=");
buttonE.setBounds(20,300,270,30);
add(buttonE);

//ボタンとフィールドの追加ここまで
}

class CalcWindow extends WindowAdapter //ウィンドウを閉じる
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}

※OKWAVEより補足:「Webシステム開発」についての質問です。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 100% (1/1)

public Calc(){
super("電卓");
setSize(317,360);
setVisible(true);


public Calc(){
super("電卓");
setLayout(null); // 追加箇所
setSize(317,360);
setVisible(true);

に変更すればエラーが起こることはなくなります。
お礼コメント
atono_matsuri

お礼率 100% (1/1)

追加文について調べてみたのですが、レイアウトマネージャというものが関わっていそうですね。
そのレイアウトマネージャに配置を任せず自分で座標などを指定して配置する場合は、
()内をnullとしなければいけない、という解釈しました。(間違っているかもしれませんが)
たった一文で解決することに驚いております。

とても助かりました。ありがとうございます!
投稿日時 - 2019-04-26 13:12:27
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ