質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

2286閲覧

BottunのsetEnabledの切り替え

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/09/10 09:03

編集2021/09/11 07:10

#作ろうとしているシステムの流れ
0. ユーザに問題を提示し、回答してもらう
(回答するごとにカウンタ変数iをカウントしていき、iがある数字に到達したら回答終了とみなす)
0. 全て回答を終えたら、CardPanelによる画面の切り替えが可能な「結果表示ボタン」を表示し、結果表示画面に移行する

#実現したいこと
カウンタ変数iが一定数カウントされたら、自動的にsetEnabledをtrueに変更し、ボタンが有効になるようにしたい
if文でiの数値による動作を書いているが、カウンタ変数iがある数に到達してもボタンが有効にならない

#疑問・予想
エラーは出ていないためif文は機能していると思うが、cardPanelの再描画がうまくいっていないためボタンが有効になっていても表示されない?

#プログラム

package screen; import //(省略)  ・  ・  ・ public class Sc extends JFrame implements ActionListener{ JPanel cardPanel; CardLayout CardLayout; SpringLayout SpringLayout; int i = 0; //カウンタ変数 public static void main(String[] args) { Sc frame = new Sc(); frame.setTitle("画面遷移テスト"); frame.setSize(1450, 900); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.setVisible(true); } public Sc() { // panel01(省略) // panel02 JPanel p2 = new JPanel(); p2.setLayout(null);      JButton btn02 = new JButton("C"); //iを増やすイベントを持ったボタン btn02.addActionListener(new Code()); p2.add(btn02) // panel03 JPanel p3 = new JPanel(); p2.setLayout(null); JButton btn03 = new JButton("panel03"); p3.add(btn03); // CardLayout用パネル cardPanel = new JPanel(); CardLayout = new CardLayout(); cardPanel.setLayout(CardLayout); cardPanel.add(p1, "panel01"); cardPanel.add(p2, "panel02"); cardPanel.add(p3, "panel03"); // カード移動用ボタン JButton btn_2to3 = new JButton("結果に進む"); btn_2to3.addActionListener(this); btn_2to3.setActionCommand("panel03"); JPanel btnPanel = new JPanel(); btnPanel.add(btn_1to2); btnPanel.add(btn_2to3); btn_2to3.setEnabled(false); if(i==11){ cardPanel.validate(); cardPanel.repaint(); btn_2to3.setEnabled(true); } // cardPanelとカード移動用ボタンをJFrameに配置 Container contentPane = getContentPane(); contentPane.add(cardPanel, BorderLayout.CENTER); contentPane.add(btnPanel, BorderLayout.PAGE_END); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); CardLayout.show(cardPanel, cmd); } class Code implements ActionListener{ public void actionPerformed(ActionEvent e) { Clip clip = null; AudioInputStream audioInputStream; try{   //省略 i++; } catch (UnsupportedAudioFileException e1) { e1.printStackTrace(); } catch (LineUnavailableException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } } } }

質問を見やすくするために何箇所か省略させていただいておりますが、
その関係でプログラムが変になっている箇所がありましたら申し訳ありません。
ご回答よろしくお願い致します。

#追記
修正前

public class Sc extends JFrame implements ActionListener{ public static void main(String[] args) { Sc frame = new Sc(); frame.setTitle("画面遷移テスト"); frame.setSize(1450, 900); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.setVisible(true); } public Sc(){ ・ ・ ・ } ・ ・ ・ }

修正後

public class Sc extends JFrame implements ActionListener{ public static void main(String[] args) { new Sc().setVisible(true); } public Sc(){ setSize(1450, 900); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); ・ ・ ・ } ・ ・ ・ }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shiketa

2021/09/11 03:06

> 質問を見やすくするために何箇所か省略させていただいておりますが、 もし、わたしが回答できるかどうかを検討するとしたら、質問内容が読みやすく理解可能であることはもちろんですが、余計な部分を省いてあり、コピペしただけで問題や疑問を再現できるソースが、提示されているかどうか。問題を抱えたヒトは「読みやすく」するために省略しているのかもしれませんが、その原因の所在がわかっていないのに、省略できるものでしょうか?省略した部分に原因がある、かもしれない、とは考えませんか。 最低限のソースで問題を再現できるところまでソースを簡潔にしてゆけば、その過程で原因が浮き上がってくることは、ままあります。浮き上がればそれで解決。解決できなくても、疑問を提示するソースとしては役に立つものになることでしょう。
guest

回答3

0

3 枚のパネルと、それが入る CardLayout のパネル及びカードを切り替えるボタンのパネルをそれぞれ(JPanel を継承した)クラスとしてみました。(フレームクラスの内部クラスにはしていません。)

"i" は二枚目のクラスにあり、カウントオーバー時にナビゲーションのメソッドを呼ぶことで三枚目へのボタンを有効にしています。
"i" の値の確認用に JTextField を付けています。

一枚目と二枚目の間のナビゲーションが分からないので二枚目に行ったらもう一枚目に戻れない状態になっていますが、"ふぁいなるあんさー" を押した時まだ三枚目に移動する状態で無ければ一枚目に戻る(次の問題?)のでしょうか。

java

1package teratail_java.q358814; 2 3import java.awt.*; 4import java.awt.event.ActionEvent; 5import java.awt.event.ActionListener; 6 7import javax.swing.*; 8 9public class Q358814 extends JFrame { 10 public static void main(String[] args) { 11 new Q358814().setVisible(true); 12 } 13 14 public Q358814() { 15 super("画面遷移テスト"); 16 setSize(450, 300); 17 setDefaultCloseOperation(EXIT_ON_CLOSE); 18 setLocationRelativeTo(null); 19 20 //コンテンツ 21 QuestionPanel p1 = new QuestionPanel(); 22 AnswerPanel p2 = new AnswerPanel(); 23 ResultPanel p3 = new ResultPanel(); 24 25 ContentsPanel cardPanel = new ContentsPanel(p1, p2, p3); 26 27 Container contentPane = getContentPane(); 28 contentPane.add(cardPanel, BorderLayout.CENTER); 29 contentPane.add(cardPanel.getNavigationPanel(), BorderLayout.SOUTH); 30 31 p2.setCallback(new AnswerPanel.Callback() { 32 @Override 33 public void countOver() { 34 cardPanel.getNavigationPanel().setToResultButtonEnabled(true); 35 } 36 }); 37 } 38} 39 40//一枚目(panel01) 41class QuestionPanel extends JPanel { 42 QuestionPanel() { 43 super(); 44 JLabel questionLabel = new JLabel("問題?"); 45 add(questionLabel); 46 } 47} 48 49//二枚目(panel02) 50class AnswerPanel extends JPanel { 51 interface Callback { 52 void countOver(); //"ふぁいなるあんさー"ボタンを10回押すと呼ばれる. 53 } 54 private Callback callback = null; 55 private int i = 0; 56 AnswerPanel() { 57 super(); 58 59 JTextField countText = new JTextField(10); //i確認用 60 countText.setText(""+i); 61 add(countText); 62 63 JButton finalAnswer = new JButton("ふぁいなるあんさー?"); //iを増やすイベントを持ったボタン 64 finalAnswer.addActionListener(new ActionListener() { 65 public void actionPerformed(ActionEvent e) { 66 //Code.XXX(); //音を鳴らす 67 i++; 68 countText.setText(""+i); 69 if(i >= 10 && callback != null) { 70 callback.countOver(); 71 } 72 } 73 }); 74 add(finalAnswer); 75 } 76 void setCallback(Callback callback) { 77 this.callback = callback; 78 } 79} 80 81//三枚目(panel03) 82class ResultPanel extends JPanel { 83 ResultPanel() { 84 super(); 85 JLabel resultLabel = new JLabel("結果?"); 86 add(resultLabel); 87 } 88} 89 90//メインパネル 91class ContentsPanel extends JPanel { 92 private enum Card { 93 PANEL01, PANEL02,PANEL03; 94 } 95 96 private CardLayout cardLayout = new CardLayout(); 97 private NavigationPanel navigationPanel = null; 98 99 ContentsPanel(JPanel question, JPanel answer, JPanel result) { 100 super(null); 101 setLayout(cardLayout); 102 103 add(question, Card.PANEL01.name()); 104 add(answer, Card.PANEL02.name()); 105 add(result, Card.PANEL03.name()); 106 } 107 108 private void showCard(Card card) { 109 cardLayout.show(this, card.name()); 110 } 111 112 NavigationPanel getNavigationPanel() { 113 if(navigationPanel == null) navigationPanel = new NavigationPanel(); 114 return navigationPanel; 115 } 116 117 //ナビゲーション 118 class NavigationPanel extends JPanel { 119 private JButton toResultButton; 120 private NavigationPanel() { 121 super(); 122 123 JButton toAnswerButton = new JButton("回答に進む"); //btn_1to2 124 toAnswerButton.addActionListener(new ActionListener() { 125 @Override 126 public void actionPerformed(ActionEvent e) { 127 toAnswerButton.setEnabled(false); 128 showCard(Card.PANEL02); 129 } 130 }); 131 132 toResultButton = new JButton("結果に進む"); //btn_2to3 133 toResultButton.setEnabled(false); 134 toResultButton.addActionListener(new ActionListener() { 135 @Override 136 public void actionPerformed(ActionEvent e) { 137 toResultButton.setEnabled(false); 138 showCard(Card.PANEL03); 139 } 140 }); 141 142 add(toAnswerButton); 143 add(toResultButton); 144 } 145 void setToResultButtonEnabled(boolean b) { 146 toResultButton.setEnabled(b); 147 } 148 } 149}

投稿2021/09/10 19:47

編集2021/09/10 19:52
jimbe

総合スコア13209

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

前回の質問の続きですよね?
Java - 親クラスの変数を子クラスで変更し、親クラスに返す|teratail

前回の質問をどう解決されたかわからないので複数クラスに分けましたが、内部クラス等でいいならもっと簡単な話になります。

カウンタ変数iが一定数カウントされたら、自動的にsetEnabledをtrueに変更し、ボタンが有効になるようにしたい

これはかなり本質を突いた問いでして、そういうことができれば便利なのですが、ただのint変数にはそういう機能はありません。
Scの外でiを変えてもScは知りようがないし、逆にSciを変えてもほかのクラスからはわかりません。

もちろんiが変わった後にiを見れば増えてはいます(いつ増えたのかはわからない)

簡単な解決策は直接iを変えずに、iを変えるメソッドを用意することです。
そうすればScはいつiが変わるのかを把握できます。
こういうメソッドをセッター(setter)といいます。

Java

1import java.awt.BorderLayout; 2import java.awt.CardLayout; 3import java.awt.event.ActionEvent; 4import java.awt.event.ActionListener; 5import javax.swing.JButton; 6import javax.swing.JFrame; 7import javax.swing.JPanel; 8 9 10public class Sc extends JFrame implements ActionListener { 11 public static void main(String[] args) { 12 new Sc().setVisible(true); 13 } 14 15 private final JPanel cardPanel; 16 private final CardLayout CardLayout; 17 private final JButton toResult; 18 19 private int i = 0; 20 21 public Sc() { 22 setSize(400, 300); 23 setLocationRelativeTo(null); 24 setDefaultCloseOperation(EXIT_ON_CLOSE); 25 26 cardPanel = new JPanel(); 27 CardLayout = new CardLayout(); 28 cardPanel.setLayout(CardLayout); 29 30 cardPanel.add(new QuestionPanel(this), "question"); 31 32 JPanel result = new JPanel(); 33 result.add(new JButton("result")); 34 cardPanel.add(result, "result"); 35 36 JPanel btnPanel = new JPanel(); 37 toResult = new JButton("結果に進む"); 38 toResult.addActionListener(this); 39 toResult.setActionCommand("result"); 40 toResult.setEnabled(false); 41 btnPanel.add(toResult); 42 43 add(cardPanel, BorderLayout.CENTER); 44 add(btnPanel, BorderLayout.PAGE_END); 45 } 46 47 // public int getI() {return i;} // ゲッター(getter) 48 // public void setI(int i) {this.i = i;} // セッター(setter) 49 // ゲッターセッターでもいいのだが、「1ずつ増やす」しかしないのでより明確に 50 public void incrementI() { 51 i++; 52 if (11 <= i) { 53 toResult.setEnabled(true); 54 } 55 } 56 57 @Override public void actionPerformed(ActionEvent e) { 58 CardLayout.show(cardPanel, e.getActionCommand()); 59 } 60} 61 62class QuestionPanel extends JPanel implements ActionListener { 63 private final Sc sc; 64 65 QuestionPanel(Sc sc) { 66 this.sc = sc; 67 68 JButton yes = new JButton("〇"); 69 yes.addActionListener(this); 70 yes.setActionCommand("yes"); 71 add(yes); 72 73 JButton no = new JButton("×"); 74 no.addActionListener(this); 75 no.setActionCommand("no"); 76 add(no); 77 } 78 79 @Override public void actionPerformed(ActionEvent e) { 80 sc.incrementI(); 81 } 82}

ただのint変数にはそういう機能はありません。

と言いましたが、実はそういうことができる仕組みは用意されています(Swingで活用している例はほとんど見ないのですが^^;
PropertyChangeListener (Java Platform SE 8 )
PropertyChangeSupport (Java Platform SE 8 )

Java

1import java.awt.BorderLayout; 2import java.awt.CardLayout; 3import java.awt.event.ActionEvent; 4import java.awt.event.ActionListener; 5import java.beans.PropertyChangeEvent; 6import java.beans.PropertyChangeListener; 7import javax.swing.JButton; 8import javax.swing.JFrame; 9import javax.swing.JPanel; 10import javax.swing.event.SwingPropertyChangeSupport; 11 12 13public class Sc extends JFrame implements ActionListener, PropertyChangeListener { 14 public static void main(String[] args) { 15 new Sc().setVisible(true); 16 } 17 18 private final JPanel cardPanel; 19 private final CardLayout CardLayout; 20 private final JButton toResult; 21 private final QuestionModel model; 22 23 24 public Sc() { 25 setSize(400, 300); 26 setLocationRelativeTo(null); 27 setDefaultCloseOperation(EXIT_ON_CLOSE); 28 29 model = new QuestionModel(); 30 model.addPropertyChangeListener(this); 31 32 cardPanel = new JPanel(); 33 CardLayout = new CardLayout(); 34 cardPanel.setLayout(CardLayout); 35 36 cardPanel.add(new QuestionPanel(model), "question"); 37 38 JPanel result = new JPanel(); 39 result.add(new JButton("result")); 40 cardPanel.add(result, "result"); 41 42 JPanel btnPanel = new JPanel(); 43 toResult = new JButton("結果に進む"); 44 toResult.addActionListener(this); 45 toResult.setActionCommand("result"); 46 toResult.setEnabled(false); 47 btnPanel.add(toResult); 48 49 add(cardPanel, BorderLayout.CENTER); 50 add(btnPanel, BorderLayout.PAGE_END); 51 } 52 53 @Override public void actionPerformed(ActionEvent e) { 54 CardLayout.show(cardPanel, e.getActionCommand()); 55 } 56 57 @Override public void propertyChange(PropertyChangeEvent evt) { 58 if (11 <= model.getI()) { 59 toResult.setEnabled(true); 60 } 61 } 62} 63 64class QuestionPanel extends JPanel implements ActionListener { 65 private final QuestionModel model; 66 67 QuestionPanel(QuestionModel model) { 68 this.model = model; 69 70 JButton yes = new JButton("〇"); 71 yes.addActionListener(this); 72 yes.setActionCommand("yes"); 73 add(yes); 74 75 JButton no = new JButton("×"); 76 no.addActionListener(this); 77 no.setActionCommand("no"); 78 add(no); 79 } 80 81 @Override public void actionPerformed(ActionEvent e) { 82 model.incrementI(); 83 } 84} 85 86class QuestionModel { 87 private final SwingPropertyChangeSupport pcs = new SwingPropertyChangeSupport(this); 88 89 public void addPropertyChangeListener(PropertyChangeListener listener) { 90 pcs.addPropertyChangeListener(listener); 91 } 92 93// public void removePropertyChangeListener(PropertyChangeListener listener) { 94// pcs.removePropertyChangeListener(listener); 95// } 96 97 private int i; 98 99 public int getI() { return i; } 100 101// public void setI(int newValue) { 102// int oldValue = i; 103// i = newValue; 104// pcs.firePropertyChange("i", oldValue, newValue); 105// } 106 107 public void incrementI() { 108 pcs.firePropertyChange("i", i++, i); 109 } 110}

あまり変わり映えしませんが、変更を知れるクラスをいくつでも登録できます。


追記

内部クラスで変数を扱うことにしております。

Codeは内部クラスになっていませんが、書き間違いだとして^^;

内部クラスでいいなら話は簡単です。
外(Sc)の変数がそのまま使えるので、i++したついでにチェックするだけです。

Java

1import java.awt.BorderLayout; 2import java.awt.CardLayout; 3import java.awt.event.ActionEvent; 4import java.awt.event.ActionListener; 5import javax.swing.JButton; 6import javax.swing.JFrame; 7import javax.swing.JPanel; 8 9public class Sc extends JFrame implements ActionListener { 10 public static void main(String[] args) { 11 new Sc().setVisible(true); 12 } 13 14 private final JPanel cardPanel; 15 private final CardLayout cardLayout; 16 private final JButton btn_2to3; 17 18 private int i = 0; 19 20 public Sc() { 21 setSize(400, 300); 22 setLocationRelativeTo(null); 23 setDefaultCloseOperation(EXIT_ON_CLOSE); 24 25 JPanel p2 = new JPanel(); 26 JButton btn02 = new JButton("C"); 27 btn02.addActionListener(new Code()); 28 p2.add(btn02); 29 30 JPanel p3 = new JPanel(); 31 JButton btn03 = new JButton("panel03"); 32 p3.add(btn03); 33 34 cardPanel = new JPanel(); 35 cardLayout = new CardLayout(); 36 cardPanel.setLayout(cardLayout); 37 38 cardPanel.add(p2, "panel02"); 39 cardPanel.add(p3, "panel03"); 40 41 btn_2to3 = new JButton("結果に進む"); 42 btn_2to3.addActionListener(this); 43 btn_2to3.setActionCommand("panel03"); 44 45 JPanel btnPanel = new JPanel(); 46 btnPanel.add(btn_2to3); 47 btn_2to3.setEnabled(false); 48 49 add(cardPanel, BorderLayout.CENTER); 50 add(btnPanel, BorderLayout.PAGE_END); 51 } 52 53 public void actionPerformed(ActionEvent e) { 54 String cmd = e.getActionCommand(); 55 cardLayout.show(cardPanel, cmd); 56 } 57 58 59 class Code implements ActionListener { 60 public void actionPerformed(ActionEvent e) { 61 i++; 62 if (i == 11) { 63 btn_2to3.setEnabled(true); 64 } 65 } 66 } 67}

投稿2021/09/10 12:06

編集2023/07/29 04:54
TN8001

総合スコア9862

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/09/10 14:12

前回に引き続き、ご回答ありがとうございます。 内部クラスで変数を扱うことにしております。 iを増やすイベントを記載していなかったのでプログラムを修正させていただいたのですが(下方のCodeクラスでiの変更を行います)、iの変更はScクラスの中で行う必要がある、という認識で間違っていないでしょうか?
TN8001

2021/09/10 15:05

内部クラス例 追記
退会済みユーザー

退会済みユーザー

2021/09/11 07:14

ありがとうございます。 ご指摘いただいた内容で修正したところ、うまく作動しました。 追記欄に修正前と修正後のmainメソッドを記載させていただいたのですが、 どちらもframeの設定をしているように見えるのですが、これらはどのような違いがあるのでしょうか? 重ねての質問になってしまい申し訳ありません。
TN8001

2021/09/11 08:28

> これらはどのような違いがあるのでしょうか? そんなに深い理由はありません^^; 慣れた書き方や好みの問題です^^ どちらも意味は同じなのですが、個人的に * mainは一番上にあってほしい(IDEで実行するときに行番号のあたりに出る実行ボタンを押しやすい) * mainはできるだけ短くしたい(mainのあとにフィールドが来ることになるので) といったことが理由です。実行結果に違いはありません。 jimbeさんも同じようにされていますが、同様の理由かはちょっとわかりません。 znrさんに直せと言っているわけではないです。好きに書いてください^^;
退会済みユーザー

退会済みユーザー

2021/09/11 11:58

参考になりました。ありがとうございました!
jimbe

2021/09/11 14:41

> jimbeさんも同じようにされていますが あ、ハイ。 私の場合は main はあくまで起動するだけということにしています。 プログラムとしてのメインは JFrame を実装しているクラスというつもりです。…まぁ、"画面中央に表示する" を起動する側が決めるべきか起動される側が決めるべきかとか微妙ではあるのですが (=_=; 公式というか正式というか、Swing の起動は本当は setVisible だけでは無く、EDT 経由で実行しないといけないのですね。 ですが覚えてなくて面倒なので、とりあえず一行で書いておいて、ちゃんと書く場合にはそこだけ置き換える感じにするというか ^^;;;
guest

0

java

1public class Sc extends JFrame implements ActionListener{ 2 ... 3 int i = 0; //カウンタ変数 4 ... 5 6 public Sc() { 7 ... 8 if(i==11){ 9 cardPanel.validate(); 10 cardPanel.repaint(); 11 btn_2to3.setEnabled(true); 12 }
  1. Sc()はScクラスのコンストラクタ。
  2. mainメソッドで、Sc frame = new Sc(); としたときほんの一回しか実行されない。
  3. コンストラクタの中で、if(i==11){としても、iは、初期値の1のまま。だからbtn_2to3.setEnabled(true);にたどり着くことは、絶対にない。

すべてを提示していないので、iがどのタイミングで更新されるのかわらないが、そのあたりにif(i==11){...をもっていく必要がある。おそらく。

投稿2021/09/10 09:13

編集2021/09/10 09:15
shiketa

総合スコア4061

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/09/10 14:19

ご回答ありがとうございます。 iを増やすイベントを記載していなかったのでプログラムを修正させていただきました(下方のCodeクラスでiの変更を行います)。 Sc()は一度しか呼び出されていないためiが変化してもSc()内のif文が機能しない、ということでしょうか?
shiketa

2021/09/10 14:55

TN8001さんの回答を参考にしてください。
shiketa

2021/09/10 14:58

\# ちょっと(かなりかな)方向がずれますが。 ご存知かとおもいますが、SwingではなくJavaFXというGUIフレームワークがあります。Java9以降はJDKにバンドルされなくなったので自力で手間をかけてインストール/セットアップする必要がありますが、今回のようなケースを一行で解決する手段があります。 ButtonのdisablePropertyと、iを保持するIntegerPropertyとをBindingsで関連付けする。 `button.disableProperty.bind(Bindings.greaterThan(11, iProperty));` これで、iPropertyが11より大きくなると、ボタンが無効になる。 https://docs.oracle.com/javase/jp/8/javafx/api/javafx/beans/binding/Bindings.html#greaterThan-int-javafx.beans.value.ObservableNumberValue- 余計な情報でしょうが、参考まで。
TN8001

2021/09/10 15:16

私はC#でWPFが得意なのですが、JavaFXも同じような思想ですよね。 しかしいまだにSwingやWinFormsのほうが多数派な感じで残念です^^;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問