void AwtTextComponent::_SetText(void *param) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); SetTextStruct *sts = (SetTextStruct *)param; jobject self = sts->textcomponent; jstring text = sts->text; AwtTextComponent *c = NULL; PDATA pData; JNI_CHECK_PEER_GOTO(self, ret); c = (AwtTextComponent *)pData; if (::IsWindow(c->GetHWnd())) { int length = env->GetStringLength(text); WCHAR* buffer = new WCHAR[length + 1]; env->GetStringRegion(text, 0, length, reinterpret_cast<jchar*>(buffer)); buffer[length] = 0; c->CheckLineSeparator(buffer); c->RemoveCR(buffer); c->SetText(buffer); delete[] buffer; } ret: env->DeleteGlobalRef(self); env->DeleteGlobalRef(text); delete sts; }