Swing Text auf eine Seite an beliebigen Orten schreiben

airglide

Mitglied
Hallo zusammen 😉

Ich möchte versuchen, dass man Text auf eine Seite schreiben kann so wie in Paint. Später möchte ich versuchen diesen auch zu bewegen, hat jemand eine Ahnung wie ich an die Aufgabe herangehen sollte? und inwiefern ich die Javaklassen erweitern muss?

lg airglide 😉
 
was denn für eine "seite"?

einfach in das fenster zeichnen? also sich über swing im allgemeinen, jframes & jpanels zu informieren wäre da sinnvoll. die entsprechenden (mouse-) listener bzw. drag & drop wirst du dann später zum verschieben brauchen.
 
ich dachte an sowas wie ein JPanel und dann fügt man so eine art wie JTextAreas ein die man dann herumziehen kann oder so ähnlich, aber wie mach ich das ganze mit dem verschieben? dass ich das herumziehen kann?

lg airglide
 
so ich hab es mal versucht, es will jedoch nicht wirklich klappen weiss nicht ob es daran liegt, dass die JTextPane's keinen Inhalt haben...
Java:
public class Text {

	private JFrame frame;
	private JPanel panel;
	private ArrayList<JTextPane> txtPanes = new ArrayList<JTextPane>();
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Text txt = new Text();
		txt.gui();

	}
	
	void gui ()
	{
		frame = new JFrame();
		panel = new JPanel();
		panel.addMouseListener(new Textfile());
		
		for(JTextPane item : txtPanes)
		{
			panel.add(item);
		}
		
		frame.add(panel);
		frame.setSize(500, 550);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		
	}

	class Textfile implements MouseListener{
		
		@Override
		public void mouseReleased(MouseEvent event){
			// create a JTextPane 
			JTextPane txtp = new JTextPane();
			// add it to the List
			txtPanes.add(txtp);
			frame.revalidate();
	
		}
                      .... andere Methoden 

}}

Man sollte wo drauf klicken können und dann einen Text eingeben.. ich möchte, dass man mehrere zeilen schreiben kann und dies auch farbig/schriftartändern etc. kann.. deshalb hab ich JTextPane genommen.. habs auch mit einem neuen Thread versucht was nicht wirklich was gebracht hat 😉 hoffe jemand kann mir weiterhelfen

danke airglide
 

Zurück
Oben