Hallo Leute!
Hier erstmal mein Code
Mein Problem ist folgendes:
Ich will einen Dialog schreiben, in dem der User Text selektieren kann, der dann durch einen Klick auf den Button weiterverarbeitet wird. Zu Beginn ist alles selektiert (mit textareaSelectAll()) und es ist schön gehighlighted, wie man es kennt. Klicke ich jetzt aber auf einen Button (oder Comobox, oder sonstiges), so ist der Text nicht mehr selektiert (auch optisch nicht mehr). Rufe ich jetzt meine (über eine Checkbox "select all") wieder die textareaSelectAll auf, so hat er zwar mit textarea.getSelectedtext den ganzen Text selektiert, aber visuell überhaupt nicht...
Wie kriege ich das Problem gelöst?
Hoffentlich wisst Ihr was ich meine..
Danke für die Hilfe!
Hier erstmal mein Code
Java:
package mvc.views;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
public class AnalyserTextSelector extends JFrame {
private JPanel contentPane;
private JCheckBox chckbxSelectAll;
private final JCheckBox chckbxRememberMyDecision;
private final JTextArea textarea;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AnalyserTextSelector frame = new AnalyserTextSelector("blub", "Dies ist ein Probetext\n\n!!!");
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
*
*
* @param title should be the filename
*/
public AnalyserTextSelector(String title, String textareaText) {
setTitle(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 495, 401);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
textarea = new JTextArea();
textarea.setBounds(10, 31, 459, 288);
textarea.setEditable(false);
textarea.setText(textareaText);
textareaSelectAll();
contentPane.add(textarea);
JLabel lblSetTheText = new JLabel("Select the text, that should be analysed:");
lblSetTheText.setBounds(10, 11, 239, 14);
contentPane.add(lblSetTheText);
chckbxSelectAll = new JCheckBox("Select all");
chckbxSelectAll.setBounds(10, 333, 83, 23);
chckbxSelectAll.setSelected(true);
chckbxSelectAll.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (chckbxSelectAll.isSelected()) {
chckbxRememberMyDecision.setEnabled(true);
textareaSelectAll();
} else {
chckbxRememberMyDecision.setSelected(false);
chckbxRememberMyDecision.setEnabled(false);
textareaDeselectAll();
}
}
});
contentPane.add(chckbxSelectAll);
chckbxRememberMyDecision = new JCheckBox("remember my decision");
chckbxRememberMyDecision.setBounds(95, 333, 169, 23);
contentPane.add(chckbxRememberMyDecision);
JButton btnOk = new JButton("OK");
btnOk.setBounds(380, 329, 89, 23);
btnOk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(textarea.getSelectedText());
if (textarea.getSelectedText() == null) {
JOptionPane.showMessageDialog(null,
"You have to select any text...",
"Warning",
JOptionPane.WARNING_MESSAGE);
} else {
// TODO
}
}
});
contentPane.add(btnOk);
// setVisible(true);
}
private void textareaSelectAll() {
textarea.setSelectionStart(0);
textarea.setSelectionEnd(textarea.getText().length());
}
private void textareaDeselectAll() {
textarea.setSelectionStart(0);
textarea.setSelectionEnd(0);
}
}
Mein Problem ist folgendes:
Ich will einen Dialog schreiben, in dem der User Text selektieren kann, der dann durch einen Klick auf den Button weiterverarbeitet wird. Zu Beginn ist alles selektiert (mit textareaSelectAll()) und es ist schön gehighlighted, wie man es kennt. Klicke ich jetzt aber auf einen Button (oder Comobox, oder sonstiges), so ist der Text nicht mehr selektiert (auch optisch nicht mehr). Rufe ich jetzt meine (über eine Checkbox "select all") wieder die textareaSelectAll auf, so hat er zwar mit textarea.getSelectedtext den ganzen Text selektiert, aber visuell überhaupt nicht...
Wie kriege ich das Problem gelöst?
Hoffentlich wisst Ihr was ich meine..
Danke für die Hilfe!