Ich versuche, die Position (Start + Ende) von Text in einem JTextField auszurichten, aber ich konnte nicht finden und/oder zu verstehen, wie dies zu tun ist. ..Ändern JTextField Scrollpane Text Auffüllen/Offset um einige Pixel
example of what is wrong and what i'm looking for:
die setHorizontalAlignment Methode erlaubt nur das ..:
•JTextField.LEFT
•JTextField.CENTER
•JTextField.RIGHT
•JTextField.LEADING
•JTextField.TRAILING
mit android-Projekten, das so einfach ist, ... aber im Interesse von mir, ich kann nicht verstehen dieses eine, wenn du ein Swing-Projekt machst ... Wie kann das gemacht werden?
EDIT:
Ich habe in der Lage, diese zu sortieren, durch einen Doppelklick mit (aka lagig) JTextFields. emptyborder(), obwohl einfacher Code, entfernt alle JTextField Frame Grenzen, so dass Sie mit einem großen leeren Quadrat, was für ein Eingabefeld, ist es keine gute Idee ... hier ist ein Bild und einige Codebeispiel:
JTextField Padding Working example
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
public class TextBoxOffset {
public static void main(String[] a) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.setSize(300, 300);
frame.setVisible(true);
JLabel label1 = new JLabel("JTextField, using CreateEmptyBorder");
label1.setHorizontalAlignment(SwingConstants.CENTER);
label1.setFont(new Font("Tahoma", Font.PLAIN, 11));
label1.setBounds(0, 125, 284, 23);
frame.getContentPane().add(label1);
//Creates a new JTextField with a emptyborder
JTextField emptyborder = new JTextField();
emptyborder.setBounds(22, 164, 250, 43);
emptyborder.setBorder(new EmptyBorder(5, 17, 5, 15));
frame.getContentPane().add(emptyborder);
JLabel label2 = new JLabel("JTextField, using double (layered) JTextFields");
label2.setFont(new Font("Tahoma", Font.PLAIN, 11));
label2.setHorizontalAlignment(SwingConstants.CENTER);
label2.setBounds(0, 22, 284, 23);
frame.getContentPane().add(label2);
// Creates a new input field, layered above the (disabled) JTextField background object
JTextField inputbox = new JTextField();
inputbox.setBounds(40, 61, 216, 31);
inputbox.setBorder(null);
frame.getContentPane().add(inputbox);
// Creates a border for the input text field that will serve as a background
JTextField bg = new JTextField();
bg.setBounds(22, 56, 250, 43);
frame.getContentPane().add(bg);
bg.setEnabled(false);
// Grab the overlayed inputbox focus
inputbox.requestFocusInWindow();
}
}
Wenn jemand weiß besser, einfachen Weg, dies zu tun, das heißt, steuert den Text Polsterungen an allen Seiten (oben, links, unten, rechts), in einem JTextField (oder ein anderes Feld für das, was zählt (zB: steuere die Position des Textes innerhalb einer Schaltfläche), ohne doppelte JTextFields zu verwenden, schreibe bitte eine Antwort
Versuchen Sie Caretlistener zu Ihrem Textfeld hinzufügen, überprüfen Sie diese http://www.java2s.com/Tutorial/Java/0260__Swing-Event/CaretEventsandListeners.htm – PeaceIsPearl
Caretlistener, liest nur die Position des Caret - es ist nicht genau das, was ich suche ich. –