Hi Leute....
habe ein Problem das mich jetzt schon recht lange ärgert...
Und zwar habe ich ein JScrollPane, dem ich eine JTextArea übergeben habe. Ich hätte
gerne das diese TextArea 400, 100 groß ist, doch wenn ich die TextArea mit
setPreferredSize(new Dimension(400, 100)); setze, wird die TextArea zwar größer, jedoch
erscheint dann einfach so eine Horizontale Scrollbar, die ich nicht haben möchte....außerdem
werden mir nicht mehr alle Werte angezeigt in diesem Fenster, nur so viele, wie in ein 400, 100
Fenster passen obwohl ich eine vertikale Scrollleiste habe.
Mal zum Code:
Hier ein Screen, wie es nicht aussehen soll, aber nach dem setzen der Dimension aussieht:
wie ihr hier auch sehen könnt, werden nur 5 Perioden angezeigt, 10 müssten es aber sein....
wenn ich die Dimension nicht setze, ist die Horizontale leiste weg und alle 10 Werte werden angezeigt,
so wie ich es haben will, dann ist mir das Fenster aber zu klein.....
habe ein Problem das mich jetzt schon recht lange ärgert...
Und zwar habe ich ein JScrollPane, dem ich eine JTextArea übergeben habe. Ich hätte
gerne das diese TextArea 400, 100 groß ist, doch wenn ich die TextArea mit
setPreferredSize(new Dimension(400, 100)); setze, wird die TextArea zwar größer, jedoch
erscheint dann einfach so eine Horizontale Scrollbar, die ich nicht haben möchte....außerdem
werden mir nicht mehr alle Werte angezeigt in diesem Fenster, nur so viele, wie in ein 400, 100
Fenster passen obwohl ich eine vertikale Scrollleiste habe.
Mal zum Code:
Java:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class UI extends JFrame{
CalcTemp calcTemp = new CalcTemp();
JPanel panel = new JPanel();
JPanel panel1 = new JPanel();
JFormattedTextField textField1 = new JFormattedTextField();
JFormattedTextField textField2 = new JFormattedTextField();
JFormattedTextField textField3 = new JFormattedTextField();
JFormattedTextField textField4 = new JFormattedTextField();
JFormattedTextField textField5 = new JFormattedTextField();
JTextArea textArea = new JTextArea();
JButton button = new JButton("Endtemperatur berechnen");
//*****Konstruktor***********************
public UI(){
this("Erhitzen eines Wassereimers");
}
//*****Konstruktor***********************
public UI(String aString){
super(aString);
}
//*********************************************************************
public void mainWindow(){
UI frame = new UI("Erhitzen eines Wassereimers");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(400, 450));
frame.addComponentsToPane(frame.getContentPane());
frame.setResizable(true);
frame.pack();
frame.setVisible(true);
}
//*********************************************************************
public JPanel panel(){
panel.setLayout(new GridLayout(5, 2));
panel.add(new Label("Umgebungstemperatur in °C"));
panel.add(textField1());
panel.add(new Label("Anfangstemperatur in °C"));
panel.add(textField2());
panel.add(new Label("Anzahl Heizperioden"));
panel.add(textField3());
panel.add(new Label("Kohle in kg"));
panel.add(textField4());
panel.add(new Label("Endtemperatur in °C"));
panel.add(textField5());
return panel;
}
//*********************************************************************
public JPanel panel1(){
panel1.setLayout(new BorderLayout());
panel1.add(new Label("Temperaturverlauf"), BorderLayout.NORTH);
panel1.add(new JScrollPane(textArea()), BorderLayout.CENTER);
panel1.add(button(), BorderLayout.SOUTH);
return panel1;
}
//*********************************************************************
public JTextField textField1(){
textField1.addKeyListener(new KeyListener(){
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){
try{
calcTemp.setRoundTemperatur(Double.parseDouble(textField1.getText()));
}catch(NumberFormatException v){
}
}
});
return textField1;
}
//*********************************************************************
public JTextField textField2(){
textField2.addKeyListener(new KeyListener(){
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){
try{
calcTemp.setStartTemperatur(Double.parseDouble(textField2.getText()));
}catch(NumberFormatException v){
}
}
});
return textField2;
}
//*********************************************************************
public JTextField textField3(){
textField3.addKeyListener(new KeyListener(){
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){
try{
calcTemp.setAmountHeatPeriods(Double.parseDouble(textField3.getText()));
}catch(NumberFormatException v){
}
}
});
return textField3;
}
//*********************************************************************
public JTextField textField4(){
textField4.addKeyListener(new KeyListener(){
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){
try{
calcTemp.setCole(Double.parseDouble(textField4.getText()));
}catch(NumberFormatException v){
}
}
});
return textField4;
}
//*********************************************************************
public JTextField textField5(){
textField5.setEditable(false);
return textField5;
}
//*********************************************************************
public JTextArea textArea(){
textArea.setEditable(false);
return textArea;
}
//*********************************************************************
public JButton button(){
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent actionEvent){
textField5.setValue(calcTemp.calcEndTemperatur());
textArea().setText("Periode" + "\t" + "°C" + "\n");
for(int i = 0; i < calcTemp.getAmountHeatPeriods(); i++){
textArea().append(i+1 + "\t" + calcTemp.getAllTemperaturPerPeriode()[i] + "\n");
}
}
});
button.setPreferredSize(new Dimension(400, 100));
return button;
}
//*********************************************************************
public void addComponentsToPane(Container pane){
pane.add(panel(), BorderLayout.NORTH);
pane.add(panel1(), BorderLayout.SOUTH);
}
//*********************************************************************
}
Hier ein Screen, wie es nicht aussehen soll, aber nach dem setzen der Dimension aussieht:
wie ihr hier auch sehen könnt, werden nur 5 Perioden angezeigt, 10 müssten es aber sein....
wenn ich die Dimension nicht setze, ist die Horizontale leiste weg und alle 10 Werte werden angezeigt,
so wie ich es haben will, dann ist mir das Fenster aber zu klein.....