Hallo zusammen,
ich schreibe gerade eine kleine Datenbank.
Nutze hier zur Anzeige einen JTable und würde ganz gerne die Eigenschaft nutzen das bei anklicken des Tables die Zeile markiert wird.
Habe zur Verdeutlichung meines Problems folgendes kleines Tool geschreiben:
In diesem Versuche ich durch klicken des Buttons einen markierten Text im Textfeld a in Textfeld b zu Übergeben. Ich will also im Programm markierte Objekte in den Arbeitsspeicher übergeben.
Dies versuche ich durch die select() Methode zu realisieren.
Was mache ich hier verkehrt, bzw. ist der Ansatz überhaupt richtig gewählt.
Mein Arbeitsspeicher wird schon mal geleert und etwas übertragen, allerdings egal ob etwas markiert ist oder nicht.
schönen Dank schon mal im voraus
Gruß Grimnir
ich schreibe gerade eine kleine Datenbank.
Nutze hier zur Anzeige einen JTable und würde ganz gerne die Eigenschaft nutzen das bei anklicken des Tables die Zeile markiert wird.
Habe zur Verdeutlichung meines Problems folgendes kleines Tool geschreiben:
Java:
package de.tutorials;
import java.awt.EventQueue;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.text.JTextComponent;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.IOException;
public class Speicher extends JTextField {
private JFrame frame;
private JTextField txtIrgendwas;
private JTextField textField;
StringSelection selection;
private Transferable transferData;
private DataFlavor[] dataFlavor;
Clipboard systemClipboard;
private Object content;
static String einfügen;
/**
* Create the application.
*/
public Speicher() {
systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
frame.getContentPane().add(panel, BorderLayout.CENTER);
panel.setLayout(null);
JButton btnNewButton = new JButton("Einlesen");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
select();
textField.setText(einfügen+"sbfsfb");
}
});
btnNewButton.setBounds(176, 156, 89, 23);
panel.add(btnNewButton);
txtIrgendwas = new JTextField();
txtIrgendwas.setText("irgendwas");
txtIrgendwas.setBounds(63, 53, 86, 20);
panel.add(txtIrgendwas);
txtIrgendwas.setColumns(10);
textField = new JTextField();
textField.setBounds(266, 53, 86, 20);
panel.add(textField);
textField.setColumns(10);
}
public void select() {
selection = new StringSelection(getSelectedText());
systemClipboard.setContents(selection, selection);
transferData = systemClipboard.getContents(null);
dataFlavor = transferData.getTransferDataFlavors();
// System.out.println("Wert? " + systemClipboard.toString());
try {
content = transferData.getTransferData(dataFlavor[0]);
if (content != null) {
setText(content.toString());
System.out.println("Wert? = "+ content);
einfügen = content.toString();
System.out.println("einfügen = "+einfügen);
}
// System.out.println(content.toString());
} catch (UnsupportedFlavorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Speicher window = new Speicher();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
In diesem Versuche ich durch klicken des Buttons einen markierten Text im Textfeld a in Textfeld b zu Übergeben. Ich will also im Programm markierte Objekte in den Arbeitsspeicher übergeben.
Dies versuche ich durch die select() Methode zu realisieren.
Was mache ich hier verkehrt, bzw. ist der Ansatz überhaupt richtig gewählt.
Mein Arbeitsspeicher wird schon mal geleert und etwas übertragen, allerdings egal ob etwas markiert ist oder nicht.
schönen Dank schon mal im voraus
Gruß Grimnir
Zuletzt bearbeitet: