0

新しいパネルを作成し、カスタム描画機能を実装するだけのこのコードがあります。

centerPanel = new JPanel() {
    @Override
         public void paintComponent( Graphics g ) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setColor(Color.blue);
            g2.setStroke(new BasicStroke(2));
            g2.clearRect(0, 0, 1000, 1000);

            Map<Integer, String> tables = Controller.FormMainWindowGetTables();
            for (Integer id : tables.keySet()) {
                Map<String, Object> table = Controller.FormMainWindowGetSingleTable(id);
                g2.drawOval((int)table.get("pos_x"), (int)table.get("pos_y"), 100, 100);
            }
         }
    };

ただし、楕円は 1 つしか描画されません。また、ループ内にデバッグ テキストを入れて動作を確認してみましたが、最初の要素に関する情報しか出力されません。ループは「無限」のようですが、常に最初の要素のみを出力しますMap

私はここで何が間違っているのか理解できません...

4

0 に答える 0