JtextfieldsまたはJtextareasの形式で行列を表示する必要があるプログラムを作成する必要があります。これにより、ユーザーはそれらを書き込むことができます(各Jtextfield )。 問題は、ユーザーが指定するJtextfieldsのサイズと量(毎回異なる)でカスタムJPanelを作成する方法がわかりません。 私はすでにこの問題をGoogle検索していますが、無駄です。JTextFieldsまたはJTextAreasを使用して行列を作成する
1
A
答えて
1
GridLayoutをご覧ください。 2つのパラメータ(行と列の数)と一緒にグリッドをまとめるのは簡単です。 JavaDocから言い換えする:
public static void main (String[] args) {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,2));
panel.add(new JTextField("1"));
panel.add(new JTextField("2"));
panel.add(new JTextField("3"));
panel.add(new JTextField("4"));
panel.add(new JTextField("5"));
panel.add(new JTextField("6"));
がJTextFields
EDITの2 COL格子により3行をもたらす:ここで
するDemo
という名前のクラスにおいて、いくつかの詳細である。
public class Demo {
public static void main(final String[] args) {
if (args.length < 2) {
System.out.print("please enter row and col on commandline");
}
SwingUtilities.invokeLater(new Runnable(){
public void run() {
new Demo(Integer.parseInt(args[0]), Integer.parseInt(args[1]));
}
});
}
public Demo(int colCnt, int rowCnt) {
JFrame frame = new JFrame("Demo");
frame.setSize(600, 600);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(colCnt,rowCnt));
for (int i =0; i < rowCnt*colCnt; i++) {
panel.add(new JTextField(""+i));
}
frame.setContentPane(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
0
まず、テキストフィールド\エリアの2次元配列を作成します。ユーザーの入力を取得すると、配列を初期化してすべてのウィジェットを「新規作成」することができます。それらをすべて親パネルの\ frameに追加したら、使用済みのサイズに基づいて計算を行い、トップレベルのウィンドウのサイズを変更する必要があります。それとは別に、既に提案したように、GridLayoutは直接の親コンポーネントにとっては良い選択です。
これが役に立ちます。
0
実行時に外観を変更するには、コンテンツを新しいコンポーネントに置き換えるだけです。 入力の仕方によっては、akfの答えで指定された数字を入力と置き換えます。
panel.setLayout(new GridLayout(rows, columns));
、その後、あなたが
add(panel);
あなたの割り当てとJFrameの中にそれを追加し、新しいパネルを表示するしかし、行列を表示するのJPanelのサブクラスの線に沿って何かあるかもしれません。私はあなたの言葉にその印象を与えます。次に、その全体的に異なる解決策。
値を編集できるマトリックスを実装することが唯一の目標であれば、JTableの方がはるかに簡単です。これはまたdata.setRowCount(newValueに)を使用して、マトリックスの高さと幅を変更する単純化のJFrame
DefaultTableModel data = new DefaultTableModel(3 , 3);// rows, cols
JTable table = new JTable(data);
add(table);
pack();
setVisible(true);
に次のように置きます。
関連する問題
- 1. JTextAreasを使用したJTabbedPane。自動スクロール
- 2. 動的にJTextAreasを作成しますか?
- 3. ループを使用してJTextFieldsから値を取得する
- 4. 他のクラスを使用してJTextfieldsをフォーマットする
- 5. テーブル内の行データから作成された列を使用してMySQLでビューを作成しますか?
- 6. WebDeployを使用してサーバーまたはサイトパッケージを作成する
- 7. PHPまたはJavaScriptを使用してアプリケーションを作成する
- 8. JQueryまたはJavaScriptを使用してタブを作成する
- 9. 基本ロジックを使用してN行N対角行列を作成する
- 10. 動的SQLまたはピボットを使用してSQL Serverの行から列を作成する方法は?
- 11. Pythonでループを使用してm行n列の行列を作成しようとしています
- 12. opencv pythonを使用して行列からイメージを作成するには?
- 13. igraphを使用してRでサイクルグラフまたは隣接行列を作成しますか?
- 14. 2つの変数を使用してカウントの行列を作成します
- 15. JDBI SQLオブジェクトAPIを使用して新しい行を並行して取得または作成する
- 16. 行の電子メールコンテンツは、PHPを使用してmysqlを作成しました
- 17. 3Dマトリックス2D行列を使用したインデックス作成
- 18. ArrayListのArrayListを使用したスパイラル順序行列の作成
- 19. XAMLを使用してデータグリッドを作成し、私は複数の行と列のデータグリッドを作成していWPF
- 20. カスタム列を使用してデータフレームを作成する方法は?
- 21. GUIを使用してID列を作成する方法は?
- 22. 簡易行列を作成して数値行列を作成する
- 23. STLコンテナを使用して連続する行列変数を作成する
- 24. は、私はパンダを使用して作成された以下の相関行列持つパンダ相関行列
- 25. PHP PDOを使用して新しい列またはフィールドを作成
- 26. Task.ContinueWithを使用して実行キューを作成しますか?
- 27. 行を作成しますがseqalizerjsを使用して
- 28. PHPを使用して配列を使用してJSONオブジェクトを作成する
- 29. JSONを使用してテーブルビューを使用して配列を作成する
- 30. readテキストを使用してテキストをファイルを行列の中に作成する
カスタマイズされたJPanelの動作の詳細については、そのようなJPanel p =新しいMyJPanel(行、列)?? – TechTravelThink
私はメインパネルを持っていて、そこにTextFieldを含むパネルを追加する予定でした。このパネルには、マトリックスのサイズに応じてGridLayoutがあります。 (n行、n列) – Crox
なぜJTableではないのですか? –