第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用反射更改 JFrame 中私有成員的值

使用反射更改 JFrame 中私有成員的值

ITMISS 2021-10-28 17:19:08
你好,我有以下代碼,我想要的是將名為 number 的實(shí)例的值修改為任何值我在同一個(gè)包中有兩個(gè)類(lèi)ReflectionOnClass.classimport javax.swing.*;import java.awt.*;public class ReflectionOnClass extends JFrame {private int number = 2;private JLabel jLabel = new JLabel("X: " + number);public ReflectionOnClass() {    setLayout(new FlowLayout());    setPreferredSize(new Dimension(200,200));    add(jLabel);    setDefaultCloseOperation(3);    setLocationRelativeTo(null);    pack();    setVisible(true);    }}ExecReflection.classimport java.lang.reflect.Field;import java.util.stream.Stream;public class ExecReflection {private static final String C = "ReflectionOnClass";public ExecReflection() {    try {        final Field field = Class.forName(C).getDeclaredField("number");        field.setAccessible(true);        final ReflectionOnClass rF = new ReflectionOnClass();        field.set(rF , 100);        mostrar("Value number: " + field.get(rF));    }catch (Exception ex){        ex.printStackTrace();    } } public <T> void mostrar(final T t){System.out.println(t);} public static void main(String ...gaga) {    final Runnable r = ExecReflection::new;    r.run(); }}輸出與圖像中的一樣正確,但在 JFrame 中沒(méi)有在 JFrame 啟動(dòng)之前無(wú)法更改所述變量的值?
查看完整描述

2 回答

?
慕尼黑的夜晚無(wú)繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是可能的。您可以將此函數(shù)添加到 ReflectionOnClass:


public void setNumber(int num){

    this.number = num;

    label.setText("X: " + this.number);

}


public int getNumber(){

    return this.number;

}

并從 ExecReflection 調(diào)用它們:


final ReflectionOnClass rF = new ReflectionOnClass();

rF.setNumber(4);

System.out.println("Value number: " + rF.getNumber());


查看完整回答
反對(duì) 回復(fù) 2021-10-28
?
滄海一幻覺(jué)

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

沒(méi)有任何變化,因?yàn)槟鷮?shí)際上并未更改顯示的值


private int number = 2;

private JLabel jLabel = new JLabel("X: " + number);

您需要訪問(wèn)jLabel字段,因?yàn)檫@是您顯示的值,并將文本更改為其他內(nèi)容,如果number在其他地方使用,那么您可能需要更改它們,因此number對(duì)于此示例 100 值,并將jLabel文本更改為X: 100


查看完整回答
反對(duì) 回復(fù) 2021-10-28
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)