Edit C:\Program Files\Java\jdk1.8.0_121\javafx\embed\swing\InputMethodSupport.java
/* * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javafx.embed.swing; import com.sun.javafx.collections.ObservableListWrapper; import com.sun.javafx.scene.input.ExtendedInputMethodRequests; import javafx.collections.ObservableList; import javafx.geometry.Point2D; import javafx.scene.input.InputMethodHighlight; import javafx.scene.input.InputMethodTextRun; import java.awt.Rectangle; import java.awt.event.InputMethodEvent; import java.awt.font.TextHitInfo; import java.awt.im.InputMethodRequests; import java.text.AttributedCharacterIterator; import java.text.AttributedString; import java.text.CharacterIterator; import java.util.ArrayList; import java.util.List; /** * A utility class containing the functions to support Input Methods */ class InputMethodSupport { public static class InputMethodRequestsAdapter implements InputMethodRequests { private final javafx.scene.input.InputMethodRequests fxRequests; public InputMethodRequestsAdapter(javafx.scene.input.InputMethodRequests fxRequests) { this.fxRequests = fxRequests; } @Override public Rectangle getTextLocation(TextHitInfo offset) { Point2D result = fxRequests.getTextLocation(offset.getInsertionIndex()); return new Rectangle((int)result.getX(), (int)result.getY(), 0, 0); } @Override public TextHitInfo getLocationOffset(int x, int y) { int result = fxRequests.getLocationOffset(x, y); return TextHitInfo.afterOffset(result); } @Override public int getInsertPositionOffset() { if (fxRequests instanceof ExtendedInputMethodRequests) { return ((ExtendedInputMethodRequests)fxRequests).getInsertPositionOffset(); } return 0; } @Override public AttributedCharacterIterator getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes) { String result = null; if (fxRequests instanceof ExtendedInputMethodRequests) { result = ((ExtendedInputMethodRequests)fxRequests).getCommittedText(beginIndex, endIndex); } if (result == null) result = ""; return new AttributedString(result).getIterator(); } @Override public int getCommittedTextLength() { if (fxRequests instanceof ExtendedInputMethodRequests) { return ((ExtendedInputMethodRequests)fxRequests).getCommittedTextLength(); } return 0; } @Override public AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes) { // Do not support the "Undo Commit" feature return null; } @Override public AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes) { String text = fxRequests.getSelectedText(); if (text == null) text = ""; return new AttributedString(text).getIterator(); } } public static ObservableList<InputMethodTextRun> inputMethodEventComposed(String text, int commitCount) { List<InputMethodTextRun> composed = new ArrayList<>(); if (commitCount < text.length()) { // Create one single segment as UNSELECTED_RAW composed.add(new InputMethodTextRun( text.substring(commitCount), InputMethodHighlight.UNSELECTED_RAW)); } return new ObservableListWrapper<>(composed); } public static String getTextForEvent(InputMethodEvent e) { AttributedCharacterIterator text = e.getText(); if (e.getText() != null) { char c = text.first(); StringBuilder result = new StringBuilder(); while (c != CharacterIterator.DONE) { result.append(c); c = text.next(); } return result.toString(); } return ""; } }
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de