Lange Text scrollen Sie nach rechts, wenn Sie JTextField .setText () verwenden, wenn Sie JTextField verwenden.Java

Java-Forum
Anonymous
 Lange Text scrollen Sie nach rechts, wenn Sie JTextField .setText () verwenden, wenn Sie JTextField verwenden.

Post by Anonymous »

Ich habe ein JTextField zum Anzeigen des Pfades eines ausgewählten Ordners. Es ist absichtlich deaktiviert (da der Ordner mit einem JFilechooser ausgewählt werden soll), und wenn das Programm startet, wird ein Standardordnerpfad als Text mit setText ().trainOutputFolderField = new JTextField(20);
trainOutputFolderField.setEnabled(false);
trainOutputFolderField.setText(getSourcePath()+"training-output/");
trainGBPanel.add(trainOutputFolderField, b);
< /code>
Ich möchte, dass es automatisch zum rechten Textrand scrollt, wenn es länger als das Feld ist, während sie sonst links ausgerichtet bleiben. Dies ist standardmäßig, wenn Sie manuell in das Textfeld eingeben, aber es hält es nach links verankert, wenn Sie setText () verwenden. Die Verwendung von Sethorizontalalignment () mit rechts oder nachverfolgung scheint nichts zu tun, obwohl dies wahrscheinlich nicht die Lösung war, da ich möchte, dass der Text links zu Bleiben bleibt, wenn er kürzer als das Feld ist. Das Fummeln mit der Pflegeposition schien auch nichts zu tun. Ich muss jedoch standardmäßig den Ordnerpfad anstellen, also suche ich immer noch nach einer Antwort.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>
Ich bin auch unter Windows 10 und das Lookandfeel ist "com.sun.java.swing.plaf.windows.windowslookandfeel", wenn das etwas bedeutet.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post