我是Java的新手,尤其是Swing库.当我尝试使用Notepad演示(来自JDK的标准演示)时,我在编辑器窗口中尝试更改文本时遇到了崩溃.我的示例代码:
void Filter(Component f){
if (f instanceof JTextComponent){
JTextComponent textComponent = (JTextComponent) f;
textComponent.setVisible(false); //Works
textComponent.setVisible(true); //Works
textComponent.getText(); //Works
textComponent.updateUI(); //Works
textComponent.setText("Hello world!"); //Crashes
}else{
RecursiveGet(f);
}
}
void RecursiveGet(Component c){
for (Component f : ((JComponent) c).getComponents()) {
if (f instanceof JComponent) {
Filter(f);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我搜索了JTextComponent实例,直到找到它然后测试了一些方法.我想我错过了一些东西,一些细节.我的环境JDK 1.7,JRE 7.0,Win7 x64.我很乐意得到任何帮助.谢谢.
更新 我添加了异常处理程序
void Filter(Component f){
if (f instanceof JTextComponent){
JTextComponent textComponent = (JTextComponent) f;
textComponent.setVisible(false); //Work
textComponent.setVisible(true); //Work
textComponent.getText(); //Work
textComponent.updateUI(); //Work
try {
textComponent.setText("Hello world!"); //Crash …Run Code Online (Sandbox Code Playgroud) 你好,当我尝试解码像这样的图像
"example_label.b64"文件在这里(http://ge.tt/27odGly/v/0)
我看到损坏的pdf,看起来像base64解码损坏了这个文件.
你能帮助我吗?
这里是代码示例.
import base64
with open('example_label.b64','r+') as f:
data = f.read()
f.close()
# data = data.decode('base64')
#or
data = base64.b64decode(data)
with open('example_label.pdf','w+') as f:
f.write(data)
f.close()
Run Code Online (Sandbox Code Playgroud)
谢谢.