Hallo Leute,
ich hab folgendes Problem: ich hab ne normale gui, und wenn man den OK-Button drückt wird ein neues Fester initialisiert. In diesem neuen Fenster möchte ich das malen, was in der paint() drin steht. Allerdings will das nicht und ich bekomm im zweiten fenster gar keine ausgabe...Also es soll der Eingabestring ausgegeben werden, den ich in der ersten GUI erzeuge...
Hier noch der Code:
Danke für eure Hilfe!
LG L0llip0p88
ich hab folgendes Problem: ich hab ne normale gui, und wenn man den OK-Button drückt wird ein neues Fester initialisiert. In diesem neuen Fenster möchte ich das malen, was in der paint() drin steht. Allerdings will das nicht und ich bekomm im zweiten fenster gar keine ausgabe...Also es soll der Eingabestring ausgegeben werden, den ich in der ersten GUI erzeuge...
Hier noch der Code:
Java:
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JViewport;
public class GUI extends JFrame{
//zum skalieren
static float scale = 5;
//y-shift
static float yshift = 500;
//x-shift
static float xshift = 100;
//Eingegebener darzustellender Text
String eingabeString;
public GUI(int x, int y){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(x,y);
setTitle("Glyphs");
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((d.width - getSize().width)/2, (d.height - getSize().height)/5);
//Dynamisches Layout während einer Größenänderung
Toolkit.getDefaultToolkit().setDynamicLayout(true);
setVisible(true);
}
public void display(){
//Text Panel
JPanel pnlTop = new JPanel();
//Layout für das Obere Panel
pnlTop.setLayout(new GridLayout(3, 3));
add(pnlTop);
//Textlabel Texteingabe
JLabel label = new JLabel(" Hier ihre Texteingabe:");
label.setForeground(Color.black);
pnlTop.add(label);
//Textfeld für die Eingabe
final JTextField textField = new JTextField();
pnlTop.add(textField);
//Checkbox für XML
final JCheckBox checkBox = new JCheckBox("XML Datei erzeugen");
pnlTop.add(checkBox);
//Textlabel für die Dateieinlesung
JLabel label2 = new JLabel(" Oder eine Textdatei einlesen:");
pnlTop.add(label2);
//Button
pnlTop.add(new JPanel());
JButton dateiButton = new JButton("Datei wählen");
pnlTop.add(dateiButton);
//Textlabel Schriftart
JLabel label3 = new JLabel(" Schriftart wählen:");
pnlTop.add(label3);
//ComboBox für die Schriftarten
String [] fontStrings = {"Segoe Print", "andere Schriftart"};
JComboBox fontlist = new JComboBox(fontStrings);
pnlTop.add(fontlist);
//OK-Button
JButton button = new JButton("OK");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
eingabeString = textField.getText();
try {
final JFrame f = new JFrame("Paint Window");
Container contentPane = f.getContentPane();
GUI gui = new GUI(900, 900);
contentPane.add(gui);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.repaint();
f.pack();
f.setVisible(true);
f.validate();
} catch (Exception e1) {}
}
});
pnlTop.add(button);
validate();
repaint();
}
public void paint(Graphics g){
// Graphics Objekt in Graphics 2D Objekt transformieren um damit arbeiten zu können
Graphics2D g2 = (Graphics2D) g;
//Antialising einstellen
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//Darzustellender String
//eingabeString
//Neuer Font erstellen
Font font = new Font("Arial", Font.PLAIN, 80);
//Letters erzeugen
for(int i = 0 ; i < eingabeString.length(); i++){
Letter letter = new Letter(scale, xshift,yshift, eingabeString, i, font);
letter.paintTo(g2);
}
}
}
Danke für eure Hilfe!
LG L0llip0p88