JComboBox - JTextArea

rührnössel

Grünschnabel
Hallo!
Ich habe eine JTextArea erstellt und eine JComboBox, die Schriftarten beinhaltet. Wie wählt man jetzt eine schriftart aus, und überträgt die ausgewählte schriftart auf die JTextArea? es wäre nett von euch, wenn ihr mir einen kleinen quellcodeausschnitt zeigen könntet, da ich noch anfänger bin. Die JComboBox variabel heisst combobox und die JTextArea heisst text.

danke im voraus
 
ja also spontan aus den finger gesaugt:

Code:
String fontAuswahl = comboBox.getSelectedItemd().toString();

// oder eben was auch gehen müsste:

String fontAuswahl = (String) comboBox.getSelectedItem();

// dann wahrscheinlich irgendwie so in der Art , da bin ich etz zu faul in der api nachtzuschauen

JTextArea.setFont(java.awt.Font fontAuswahl);

//also wenn der Befehl net stimmt wirfst halt selber nen Blick in die api aber so würde es funktionieren
 
Zuletzt bearbeitet:
Moin,
es macht m.E. mehr Sinn, Font-Objekte in die ComboBox zu legen und ein eigenes toString() zwecks Anzeige zu implementieren. Dann hat man sofort das ausgewählte Font-Objekt im Zugriff und muß nicht über String-casten herumtricksen.
 
also wie jetzt? ich hab in einen String die Schriftarten geschrieben. ich irgendwie völlig den durchblick verloren :( wie soll das jetzt gehen?
hier der quelltext:

Code:
 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 import javax.swing.JTextArea;
 import javax.swing.BorderFactory;
 import javax.swing.border.*;
 import javax.swing.BorderFactory;
 import javax.swing.border.*;
 import javax.swing.JToolBar;
 import javax.swing.JTable;
 import javax.swing.*;
 
 import java.awt.*;
 import java.awt.event.*;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
 import java.awt.Color;
 
 import java.applet.*;
 
 // import filechooser
 import javax.swing.JFileChooser;
 import javax.swing.JOptionPane;
 import javax.swing.AbstractAction;
 import java.awt.Container;
 import java.awt.event.ActionEvent;
 import java.io.File;
 import javax.swing.filechooser.FileFilter;
 import java.awt.HeadlessException;
 import java.net.MalformedURLException;
 
 class stecknFrame extends JFrame {
 
   public JTextArea text;
   private String[] fonttext = {"Serif", "Arial", "SanfSerif", "Monospaced", "Dialog", "DialogInput"};
   private String[] fontgrose = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","30","31"};
   private String[] fontfarbe = {"Schwarz","Rot","Blau","Grün"};
   private JButton but1, but2;
   private JTable table;
   private JComboBox combobox, comgrose, farbe;
   private int style = Font.PLAIN, size = 15;
   private JButton playb;
   private JMenuBar bar;
   private JMenu men1, men2, men3;
   private JMenuItem jm1,jm2,jm3,jm4,jm5,jm6,jm7,jm8, jm9, jm10;
   
   
 	public void setFont(String fontName) {
 			 text.setFont(new Font(fontName,Font.PLAIN,15));
   }
 
 	  private class comboAction implements ActionListener {
 			  public void actionPerformed(ActionEvent e) {
 			    setFont((String)combobox.getSelectedItem());
 			  }
 	  }
 
   
    public stecknFrame() {
 	  setSize(1020,730);
 	  setTitle("StecknOffice");
 	  
 	  // Oben Menu
 	  setJMenuBar(bar = new JMenuBar());
 	  
 	  // Menu Datei
 	  bar.add(men1 = new JMenu("Datei"));
 	  men1.add(jm1 = new JMenuItem("Öffnen"));
 	  men1.add(jm2 = new JMenuItem("Speichern"));
 	  men1.add(jm3 = new JMenuItem("Speichern unter"));
 	  men1.addSeparator();
 	  men1.add(jm10 = new JMenuItem("Drucken"));
 	  men1.addSeparator();
 	  men1.add(jm4 = new JMenuItem("Beenden"));
 	  
 	  // Menu Bearbeiten
 	  bar.add(men2 = new JMenu("Bearbeiten"));
 	  men2.add(jm5 = new JMenuItem("Kopieren"));
 	  men2.add(jm6 = new JMenuItem("Einfügen"));
 	  men2.add(jm7 = new JMenuItem("Löschen"));
 	  
 	  // Menu Hilfe
 	  bar.add(men3 = new JMenu("Hilfe"));
 	  men3.add(jm8 = new JMenuItem("StecknOffice"));
 	  men3.addSeparator();
 	  men3.add(jm9 = new JMenuItem("StecknSoft"));
 	 
 	  // but 1 / 2
 	  but1 = new JButton("Fett");
 	  but1.setToolTipText("Text wird dicker");
 	  but2 = new JButton("Kursiv");
 	  but2.setToolTipText("Text wird kursiv");
 
 
 	  // Schriftart
 	  combobox = new JComboBox();
 	  combobox.setToolTipText("Ändert die Schriftart");
 	  combobox.setEditable(true);
 	  for(int no=0; no<fonttext.length;++no)
 			  combobox.addItem(fonttext[no]);
 			  
 	  combobox.addActionListener(new ActionListener() {
 	  public void actionPerformed(ActionEvent e) {
 	   Object source1 = e.getSource();
 		if(source1 == combobox.getSelectedItem())
 		  text.setFont(new fonttext[0]);
 		}
 	  });
 			  
 	  
 	  // Größe
 	  comgrose = new JComboBox();
 	  comgrose.setToolTipText("Ändert die Größe");
 	  comgrose.setEditable(true);
 	  for(int no=0; no<fontgrose.length;++no)
 			  comgrose.addItem(fontgrose[no]);
 	  
 	  // Farbe
 	  farbe = new JComboBox();
 	  farbe.setToolTipText("Ändert die Farbe");
 	  farbe.setEditable(true);
 	  for(int no=0; no<fontfarbe.length;++no)
 			  farbe.addItem(fontfarbe[no]);
 
 
 	  // Aktion but1 Fett
 	  but1.addActionListener(new ActionListener() {
 		   public void actionPerformed(ActionEvent e) {
 			  Object source1 = e.getSource();
 				  if (source1 == but1) {
 					 style ^= Font.BOLD;
 					 text.setFont(new Font(fonttext[0],style, size ));
 				  }
 		   }
 	  });
 	  
 	  // but2 Kursiv
 	  but2.addActionListener(new ActionListener() {
 		public void actionPerformed(ActionEvent e) {
 		  Object source1 = e.getSource();
 				 if(source1 == but2) {
 				   style ^= Font.ITALIC;
 				   text.setFont(new Font(fonttext[0],style, size));
 				 }
 		}
 	  });
 
 	  // BOX beginn
 
 	  Box box1 = Box.createHorizontalBox();
 
 	  box1.add(but1);
 	  box1.add(but2);
 	  box1.add(combobox);
 	  box1.add(comgrose);
 	  box1.add(farbe);
 
 	  // box 2
 	  text = new JTextArea(50,30);
 	  setFont((String)combobox.getSelectedItem());
 	  text.setFont(new Font(fonttext[0],Font.PLAIN,15));
 	  Box box2 = Box.createHorizontalBox();
 	  box2.add(new JScrollPane(text));
 
 	  // box3
 	  String rowData[][] = {
 		{ "Info Box", "245", "Info Box" }, { "", "","sdfasdf" }, { "Italien", "220" },
 		{  "Spanien", "217" }, {"Türkei", "215"} ,{"England", "214"},
 		{  "Frankreich", "190" }, {"Griechenland", "185" },
 		{ "Deutschland", "180" }, {"Portugal", "170" }
 		};
 		String  columnNames[] = {"Tabelle A", "Tabelle B"};
 
 	  JTable table = new JTable( rowData, columnNames );
 	  Box box3 = Box.createVerticalBox();
 	  box3.add(new JScrollPane(table));
 
 	  // Box4
 	  JLabel hinweis = new JLabel("Hier können Sie kleine Notizen erstellen");
 	  Box box4 = Box.createHorizontalBox();
 	  box4.add(hinweis);
 	  
 	  // Box5
 	  playb = new JButton("StecknPlayer");
 	  playb.addActionListener(new ActionListener() {
 		public void actionPerformed(ActionEvent e) {
 		  Object source1 = e.getSource();
 				 if(source1 == playb) {
 
 				 }
 		}
 	  });
 	  
 	  Box box5 = Box.createHorizontalBox();
 	  box5.add(playb);
 
 
 	  // box vertikal
 	  Box vbox = Box.createVerticalBox();
 	  vbox.add(box1);
 	  vbox.add(box2);
 	  vbox.add(box4);
 	  vbox.add(box3);
 	  vbox.add(box5);
 	  
 	 
 	  getContentPane().add(vbox,BorderLayout.CENTER);
 	  
    } // ende stecknFrame
 }
 
 public class stecknoffice {
   public static void main(String[] argv) {
 	stecknFrame frame = new stecknFrame();
 	   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 	frame.show();
   }
 }
 
Zurück