javax.swing.text.html.ImageView; ライン111および258から267
http://javasourcecode.org/html/open-source/jdk/jdk-6u23/javax/swing/text/html/ImageView.java.htmlJavaのプライベートフィールドへのアクセス
public class ImageView extends View {
....
private float vAlign;
....
}
私のプログラム:
.....
ImageView layeredPane = (ImageView) view;
Field privateStringField = layeredPane.getClass().getDeclaredField("vAlign");
privateStringField.setAccessible(true);
layeredPane.vAlign = 2.0;
.....
私が手:
Test.java:80: error: vAlign has private access in ImageView layeredPane.vAlign = 2.0;
は、私はそれをどのように修正すればよいですか?私は2.0の価値を置く必要があります
にjava.lang.IllegalAccessException:私はそれがあることを理解し、クラスが修飾子を持つクラスjavax.swing.text.html.ImageViewのメンバーにアクセスすることができない「プライベート」悪いですが、作ることが非常に必要です。おそらく私自身のメソッドを追加する方法や、protected void setPropertiesFromAttributesを変更する方法がありますか? – user1221483
@ user1221483: 'setAccessible(true)'を呼び出した後に*あなたはそれを取得していますか?私はそれが*必要であることを確信していません - あなたは、より多くのレイアウトを介して、違ったやり方で達成しようとするべきもののような気がします。 –
pardon、java.lang.IllegalArgumentException:floatフィールドをjavax.swing.text.html.ImageView.vAlignに(double)0.5に設定できません。私はprivateStringField.setFloat(layeredPane、(float)0.75)を使用します。エラーはありませんし、うまくいきません: '( – user1221483