0

次の Java コードがあります。

public void actionPerformed(ActionEvent e)
        {
            ImageIcon i1 = new ImageIcon("/Users/vhaislsalisc/Documents/workspace/Role_Switcher/greenCheck.png", "Success!");
            JLabel checkMark = new JLabel(i1);


            if (requesterRole.isSelected())
            {
                try
                {
                    PreparedStatement ps1, ps2;
                    ps1 = con.prepareStatement("delete from hib.personrole where personid = ?");
                    ps2 = con.prepareStatement("delete from hib.persongroup where personid = ?");

                    ps1.setInt(1, userID);
                    ps2.setInt(1, userID);

                    ps1.execute();
                    ps2.execute();

                    userRoleLbl.setText("The user is a requester");

                    checkMark.setBounds(400, 125, 100, 100);
                    panel.add(checkMark);


                }

私が持っている画像は200x200ピクセルです。checkMark.setBounds()高さまたは幅を変更すると、画像が消えます。しかし、私が今持っているのは、画像の一部しか表示していません。私は何か間違ったことをしていると確信しています。それが何であるかはわかりません。

画面上の要素はどれもそこまで伸びていませんが、別の要素の背後にあるように見えます。isOptimizedDrawingEnabled()要素を前面に持ってくることを調べたところ、これを行うにはオーバーライドする必要があることが示唆され、次に の下にfalse追加しました。要素を前面に移動するには、これを処理する方法ですか?checkMark.setBounds()checkMark.isOptimizedDrawingEnabled()

4

1 に答える 1

0

コードを次のように編集したところ、うまくいきました。

//Create Success Image
            ImageIcon i1 = new ImageIcon("/Users/vhaislsalisc/Documents/workspace/Role_Switcher/greenCheck.png");
            i1.paintIcon(changeRoleBtn, getGraphics(), 400,25);
            JLabel checkMark = new JLabel(i1);
            checkMark.isOptimizedDrawingEnabled();

            if (requesterRole.isSelected())
            {
                try
                {
                    PreparedStatement ps1, ps2;
                    ps1 = con.prepareStatement("delete from hib.personrole where personid = ?");
                    ps2 = con.prepareStatement("delete from hib.persongroup where personid = ?");

                    ps1.setInt(1, userID);
                    ps2.setInt(1, userID);

                    ps1.execute();
                    ps2.execute();

                    userRoleLbl.setText("The user is a requester");
                    panel.add(checkMark);

                }
于 2013-05-22T17:08:34.937 に答える