[英]How to take a value from a private method
我使用NetBeans
使用以下代碼創建了一個jSlider ChangeEvent:
public class Slider extends javax.swing.JFrame {
public Slider() {
initComponents;
field.getText();
String fieldVal = field.getText();
jtextField1.setText(fieldVal):
}
public JTextField getField() {
return field;
}
public void setField(JTextField field) {
this.field = field;
}
private void sliderStateChanged(javax.swing.event.ChangeEvent evt) {
int value = slider.getValue();
String val = value + "";
field.setText(val + "%");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Slider().setVisible(true);
}
});
}
}
因此,我有一個JTextField
(字段),它從jSpiner接收值。 一切正常,但我想使用“ val”並進行一些計算。
但是我不能這樣做,因為它在私有方法中,並且我嘗試使用Refactor -> Change
Method Parameters將其公開,但是它給了我以下警告:只讀文本塊無法重構。,它不起作用。
我也嘗試過使吸氣劑和二傳手,但仍然無法正常工作。 我想要的就是珍惜這一價值。 我可以直接從JTextField(字段)中獲取它,但是我也想在其中包含“%”,這樣我就無法進行計算了。有人可以幫我一個忙嗎? 我知道我在某件事上錯了,但是不知道哪里出了錯。 還是可以通過其他方式在文本字段中輸入“%”? 我需要一些幫助,謝謝!
最好的問候,伊利亞
Java 反射來營救! 在類上使用getDeclaredField,然后使用setAccessible(true);。 最后通過field.get(instance)反射性地獲取值! 嘟嘟
另外,更復雜的是,實現ClassLoader並修改所述字段/方法的“修飾符”以使其公開。
總體而言,反思具有重大影響和影響。 請仔細閱讀。
據我了解,您不能讓String val成為作用域之外的全局變量,而不是局部變量,然后再使用它嗎?
臨時解決方案可以是:
如果要更改限制區域,請復制代碼,將其粘貼到新的.java
文件中並進行編輯。
如果僅與值有關,請創建一個公共變量並分配JSlider
值。
從您編輯的問題中,我可以看到,您所需要的只是一個文本框,其中顯示了附加了%的滑塊的值。
這是顯示此代碼示例。 https://gist.github.com/anonymous/96e898ec41cd2ed0f821
創建一個文件名NewJFrame.java復制並粘貼代碼,然后運行以查看結果。
根據您的代碼,我認為文本字段可能存在問題,可能是未初始化。 如果您共享整個代碼,我可以找到該錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.