Hi
Ich habe folgendes Problem:
Ich habe eine Frame Klasse. Wenn ich diese direkt ausführe funktioniert alles ohne Probleme, doch wenn ich diesen Frame von einer anderen Klasse, die in einem anderen Package ist, aufrufen möchte, erscheint dieser zwar, doch ich kann keine TextFelder editieren (auch keine TextArea). Sobald ich dies probiere stürzt der Frame ab und ich muss den Prozess schließen. Es werden jedoch keine Fehlermeldungen ausgegeben. Es steht einfach alles. (editable ist überall true)
Die Buttons funktionieren jedoch ohne Probleme.
Hier der Quellcode für den Frame:
und hier möchte ich den Frame erzeugen (andere Klasse, anderes Package):
Ich hoffe ihr habt eine Lösung, denn ich habe KEINE Ahnung.
Mit freundlichen Grüßen,
pamstc05
Ich habe folgendes Problem:
Ich habe eine Frame Klasse. Wenn ich diese direkt ausführe funktioniert alles ohne Probleme, doch wenn ich diesen Frame von einer anderen Klasse, die in einem anderen Package ist, aufrufen möchte, erscheint dieser zwar, doch ich kann keine TextFelder editieren (auch keine TextArea). Sobald ich dies probiere stürzt der Frame ab und ich muss den Prozess schließen. Es werden jedoch keine Fehlermeldungen ausgegeben. Es steht einfach alles. (editable ist überall true)
Die Buttons funktionieren jedoch ohne Probleme.
Hier der Quellcode für den Frame:
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* OSRFrame.java
*
* Created on 27.07.2009, 15:28:04
*/
package com.knapp.config.gui;
import OSR.Side;
import config.env.Environment;
import config.event.EventHandler;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author pammer4
*/
public class OSRFrame extends javax.swing.JFrame {
private Map<Integer, PlLayer> layers;
/** Creates new form OSRFrame */
public OSRFrame() {
this.layers = new HashMap<Integer, PlLayer>();
this.layers.put(1, new PlLayer(1, 9));
this.layers.put(2, new PlLayer(2, 9));
this.layers.put(3, new PlLayer(3, 9));
initComponents();
displayLayers(5);
Environment.addCoreVariable("$OSRFRAME", this);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
plManageOSR = new javax.swing.JPanel();
plInit = new javax.swing.JPanel();
btInitLayers = new javax.swing.JButton();
plMove = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
rbLeft = new javax.swing.JRadioButton();
rbRight = new javax.swing.JRadioButton();
btMove = new javax.swing.JButton();
tfBox = new java.awt.TextField();
tfChannel = new java.awt.TextField();
jScrollPane1 = new javax.swing.JScrollPane();
plLayers = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
plManageOSR.setLayout(new java.awt.GridLayout(2, 0));
btInitLayers.setText("Init Layers");
btInitLayers.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
onInitLayers(evt);
}
});
plInit.add(btInitLayers);
plManageOSR.add(plInit);
jLabel1.setText("Move box:");
jLabel2.setText("to");
rbLeft.setSelected(true);
rbLeft.setText("Left");
rbLeft.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
onLeft(evt);
}
});
rbRight.setText("Right");
rbRight.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
onRight(evt);
}
});
btMove.setText("Move");
btMove.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
onMove(evt);
}
});
tfBox.setText("textField1");
tfChannel.setText("textField2");
javax.swing.GroupLayout plMoveLayout = new javax.swing.GroupLayout(plMove);
plMove.setLayout(plMoveLayout);
plMoveLayout.setHorizontalGroup(
plMoveLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(plMoveLayout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tfBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tfChannel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(46, 46, 46)
.addComponent(rbLeft)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(rbRight)
.addGap(132, 132, 132)
.addComponent(btMove)
.addContainerGap(258, Short.MAX_VALUE))
);
plMoveLayout.setVerticalGroup(
plMoveLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(plMoveLayout.createSequentialGroup()
.addContainerGap()
.addGroup(plMoveLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfChannel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(plMoveLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(btMove)
.addComponent(rbRight)
.addComponent(rbLeft)
.addComponent(jLabel2))
.addComponent(tfBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(13, Short.MAX_VALUE))
);
plManageOSR.add(plMove);
javax.swing.GroupLayout plLayersLayout = new javax.swing.GroupLayout(plLayers);
plLayers.setLayout(plLayersLayout);
plLayersLayout.setHorizontalGroup(
plLayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 816, Short.MAX_VALUE)
);
plLayersLayout.setVerticalGroup(
plLayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 418, Short.MAX_VALUE)
);
jScrollPane1.setViewportView(plLayers);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 816, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(plManageOSR, javax.swing.GroupLayout.DEFAULT_SIZE, 806, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(27, 27, 27)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(plManageOSR, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
private void onInitLayers(java.awt.event.ActionEvent evt) {
EventHandler.fireEvent("GetChannelData");
}
private void onMove(java.awt.event.ActionEvent evt) {
// int boxId = Integer.parseInt(this.tfBox.getText());
// int channelDest = Integer.parseInt(this.tfChannel.getText());
int boxId = 2;
int channelDest = 4;
Side side = this.rbLeft.isSelected()?Side.LEFT:Side.RIGHT;
this.layers.get(1).moveBox(boxId, channelDest, side);
}
private void onRight(java.awt.event.ActionEvent evt) {
rbLeft.setSelected(rbRight.isSelected()==true?false:true);
}
private void onLeft(java.awt.event.ActionEvent evt) {
rbRight.setSelected(rbLeft.isSelected()==true?false:true);
}
private void displayLayers(int y1){
int count = 0;
for (int key : layers.keySet()) {
PlLayer plLayer = layers.get(key);
y1 = plLayer.getHeight() * count + 5;
this.plLayers.add(plLayer);
plLayer.setLocation(10, y1);
System.out.println("layer added at y=" + plLayer.getLocation().getY());
count++;
}
plLayers.setSize(plLayers.getWidth(), y1+(y1/count-1));
}
public void initLayers(){
System.out.println("OSR Frame: " + this.isVisible());
for (int key : layers.keySet()) {
System.out.println("init layer ");
layers.get(key).initializeLayer();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new OSRFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btInitLayers;
private javax.swing.JButton btMove;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JPanel plInit;
private javax.swing.JPanel plLayers;
private javax.swing.JPanel plManageOSR;
private javax.swing.JPanel plMove;
private javax.swing.JRadioButton rbLeft;
private javax.swing.JRadioButton rbRight;
private java.awt.TextField tfBox;
private java.awt.TextField tfChannel;
// End of variables declaration
}
und hier möchte ich den Frame erzeugen (andere Klasse, anderes Package):
Java:
public void interpreteCommand(String command) {
if (command.startsWith("$")) {
interpreteAdd(command);
} else if (command.startsWith("fire")) {
interpreteEvent(command);
} else if (command.equals("exit")) {
System.exit(0);
} else if (command.equals("start")) {
ConfigSystem.getInstance();
} else if (command.equals("wizard")) {
StartupWizard.show();
} else if (command.equals("def init")) {
Environment.addCoreVariable("$LOG4J_CONFIG", "log4j-4.xml");
Environment.addCoreVariable("$CONFIG_FILE", "src\\config\\Experimental.short");
} else if (command.equals("osr gui")) {
// Thread t = new Thread(new Runnable() {
//
// public void run() {
// OSRFrame osrFrame = new OSRFrame();
// osrFrame.setSize(800, 600);
// osrFrame.setVisible(true);
// osrFrame.setAlwaysOnTop(true);
// }
// });
// t.start();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
OSRFrame osrFrame = new OSRFrame();
osrFrame.setSize(800, 600);
osrFrame.setVisible(true);
osrFrame.setAlwaysOnTop(true);
}
});
}
}
Ich hoffe ihr habt eine Lösung, denn ich habe KEINE Ahnung.
Mit freundlichen Grüßen,
pamstc05