Иметь длинное текстовое свиток вправо при использовании jtextfield .settext ()JAVA

Программисты JAVA общаются здесь
Anonymous
Иметь длинное текстовое свиток вправо при использовании jtextfield .settext ()

Сообщение Anonymous »

У меня есть JTextField для отображения пути выбранной папки. Это намеренно отключено (поскольку папка должна быть выбрана с помощью JFileChooser), и когда программа начинается, путь папки по умолчанию устанавливается в виде текста с использованием setText (). < /P>
trainOutputFolderField = new JTextField(20);
trainOutputFolderField.setEnabled(false);
trainOutputFolderField.setText(getSourcePath()+"training-output/");
trainGBPanel.add(trainOutputFolderField, b);
< /code>
Я хотел бы, чтобы он автоматически прокручивал правый край текста, когда он длиннее поля, в то время как оставшиеся налево. Это то, что происходит по умолчанию, если вы вручную вводите в текстовое поле, но он держит его на якоре слева, если вы используете SetText (). < /P>
включен в запись текста JTextfield VS отключен JTextField SetText < /p>
Я бы хотел, чтобы пользователь мог видеть конец пути в поле отключенного текста. Использование SethorizontalAlignment () с правым или следами, похоже, ничего не делает, хотя, вероятно, это не было решением для начала, так как я хочу, чтобы текст оставался влево, когда он короче, чем поле. Скорость с позицией карета, похоже, тоже ничего не делала. < /P>
Есть идеи? Мне все еще нужно отобразить путь папки по умолчанию, поэтому я все еще ищу ответ.import javax.swing.*;

import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MainFrame extends JFrame {

public JTabbedPane tabbedPane;
public JPanel trainPanel;
public JPanel trainGBPanel;

// There are more components, but I've removed them for demonstration
public JTextField trainOutputFolderField;
public JButton trainOutputFolderButton;

public MainFrame() {
setTitle("Yeehaw");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.CENTER));

tabbedPane = new JTabbedPane();

trainPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
trainGBPanel = new JPanel(new GridBagLayout());
GridBagConstraints b = new GridBagConstraints();
b.anchor = b.WEST;
b.gridy = 0;
b.gridx = 0;
b.insets = new Insets(5,5,5,5);

trainGBPanel.add(new JLabel("Output folder"), b);
b.gridx += 1;
b.gridwidth = 2;
trainOutputFolderField = new JTextField(20);
trainOutputFolderField.setEnabled(false);
trainOutputFolderField.setText("yeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeehaw");
trainGBPanel.add(trainOutputFolderField, b);
b.gridx += b.gridwidth;
b.gridwidth = 1;
trainOutputFolderButton = new JButton("Select");
trainOutputFolderButton.addActionListener(new FileChooserListener(this, trainOutputFolderField));
trainGBPanel.add(trainOutputFolderButton, b);

trainPanel.add(trainGBPanel);
tabbedPane.add("TRAIN", trainPanel);

this.add(tabbedPane);
this.setVisible(true);
}

public class FileChooserListener implements ActionListener {

public MainFrame mainFrame;
public JTextField textField;

public FileChooserListener(MainFrame mainFrame, JTextField textField) {
this.mainFrame = mainFrame;
this.textField = textField;
}

@Override
public void actionPerformed(ActionEvent e) {
// There's JFileChooser stuff in here, but I've removed it for simplicity
trainOutputFolderField.setText(params.trainOutputFolder);
}

}
}
< /code>
Кроме того, я в Windows 10, и в LookandFeel является "com.sun.java.swing.plaf.windows.windowslookandfeel", если это что -то означает.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ld-settext

Вернуться в «JAVA»