📄 propertiesframe.java
字号:
jLabel6.setVisible(true);
prevButton.setLocation(new Point(20, 602));
prevButton.setSize(new Dimension(80, 20));
prevButton.setText("<< Prev");
prevButton.setToolTipText("Click to go to the Previous Object");
prevButton.setVisible(true);
nextButton.setLocation(new Point(100, 602));
nextButton.setSize(new Dimension(80, 20));
nextButton.setText("Next >>");
nextButton.setToolTipText("Click to go to the next Particle");
nextButton.setVisible(true);
setIconImage(img0);
getContentPane().setLayout(null);
setLocation(new Point(800, 0));
setResizable(false);
setTitle("Properties");
/* jPanel1.add(jLabel2);
jPanel1.add(xPosition);
jPanel1.add(jLabel3);
jPanel1.add(yPosition);
jPanel1.add(jLabel4);
jPanel1.add(zPosition);
*/
getContentPane().add(jLabel1);
getContentPane().add(mass);
getContentPane().add(updateButton);
getContentPane().add(resetButton);
getContentPane().add(jLabel10);
getContentPane().add(radius);
getContentPane().add(jPanel1);
getContentPane().add(jPanel2);
getContentPane().add(orientationPanel);
getContentPane().add(angularVelPanel);
getContentPane().add(name);
getContentPane().add(elasticity);
getContentPane().add(jLabel5);
getContentPane().add(jLabel6);
getContentPane().add(prevButton);
getContentPane().add(nextButton);
setSize(new java.awt.Dimension(209, 650));
// event handling
updateButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
updateButtonActionPerformed(e);
}
});
resetButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
reset();
}
});
prevButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
prevButtonActionPerformed(e);
}
});
nextButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
nextButtonActionPerformed(e);
}
});
if(mainFrame != null)
{
Dimension d = getToolkit().getScreenSize();
this.setLocation((int)d.getWidth() / 2 + mainFrame.getWidth() / 2, (int)d.getHeight() / 2 - getHeight() / 2);
mainFrame.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentMoved(java.awt.event.ComponentEvent e) {
Dimension dm = getToolkit().getScreenSize();
setLocation((int)mainFrame.getX() + mainFrame.getWidth(), (int)dm.getHeight() / 2 - getHeight() / 2);
}
public void componentResized(ComponentEvent e) {
Dimension dm = getToolkit().getScreenSize();
setLocation((int)mainFrame.getX() + mainFrame.getWidth(), (int)dm.getHeight() / 2 - getHeight() / 2);
}
});
}
if(currentObject == null)
{
name.setEnabled(false);
mass.setEnabled(false);
updateButton.setEnabled(false);
resetButton.setEnabled(false);
xPosition.setEnabled(false);
yPosition.setEnabled(false);
zPosition.setEnabled(false);
xSpeed.setEnabled(false);
ySpeed.setEnabled(false);
zSpeed.setEnabled(false);
radius.setEnabled(false);
pitch.setEnabled(false);
yaw.setEnabled(false);
roll.setEnabled(false);
pitchVel.setEnabled(false);
yawVel.setEnabled(false);
rollVel.setEnabled(false);
elasticity.setEnabled(false);
}
}
// Close the window when the close box is clicked
void thisWindowClosing(java.awt.event.WindowEvent e) {
JOptionPane.showMessageDialog(this, "To Quit Press the Close Button on the Main Window or use the File Menu", "Error!", JOptionPane.ERROR_MESSAGE);
}
//Update the current object with the current values
public void updateButtonActionPerformed(java.awt.event.ActionEvent e) {
try
{
double xPos = Double.parseDouble(xPosition.getText());
double yPos = Double.parseDouble(yPosition.getText());
double zPos = Double.parseDouble(zPosition.getText());
Vector3d newPosition = new Vector3d(xPos, yPos, zPos);
double xSpd = Double.parseDouble(xSpeed.getText());
double ySpd = Double.parseDouble(ySpeed.getText());
double zSpd = Double.parseDouble(zSpeed.getText());
Vector3d newSpeed = new Vector3d(xSpd, ySpd, zSpd);
double p = Double.parseDouble(pitch.getText());
double y = Double.parseDouble(yaw.getText());
double r = Double.parseDouble(roll.getText());
Quat4d orientation = Particle3D.makeQFromEulerAngles(p,y,r);
double pv = Double.parseDouble(pitchVel.getText());
double yv = Double.parseDouble(yawVel.getText());
double rv = Double.parseDouble(rollVel.getText());
Vector3d angularV = new Vector3d(pv, yv, rv);
double newMass = Double.parseDouble(mass.getText());
double newRadius = Double.parseDouble(radius.getText());
double newElasticity = Double.parseDouble(elasticity.getText());
currentObject.setName(name.getText());
currentObject.setMass(newMass);
currentObject.setPosition(newPosition);
currentObject.setSpeed(newSpeed);
currentObject.setOrientation(orientation);
currentObject.setAngularSpeed(angularV);
currentObject.setRadius(newRadius);
currentObject.setElasticity(newElasticity);
}
catch(Exception exp)
{
exp.printStackTrace();
reset();
JOptionPane.showMessageDialog(this, "Error You did not enter a number", "Error", JOptionPane.ERROR_MESSAGE);
}
Particle3DTracker.updateAll();
}
//Set the selected object
public void setObject(Particle3D newObject)
{
currentObject = newObject;
System.out.println("Got New Object");
if(newObject == null)
System.out.println("Object Cleared");
reset();
}
//Resets the text fields to the current values of the object
public void reset()
{
if(currentObject == null)
{
name.setEnabled(false);
mass.setEnabled(false);
updateButton.setEnabled(false);
resetButton.setEnabled(false);
xPosition.setEnabled(false);
yPosition.setEnabled(false);
zPosition.setEnabled(false);
xSpeed.setEnabled(false);
ySpeed.setEnabled(false);
zSpeed.setEnabled(false);
pitch.setEnabled(false);
yaw.setEnabled(false);
roll.setEnabled(false);
pitchVel.setEnabled(false);
yawVel.setEnabled(false);
rollVel.setEnabled(false);
radius.setEnabled(false);
elasticity.setEnabled(false);
}
else
{
name.setText(currentObject.getName());
mass.setText(Double.toString(currentObject.getMass()));
Vector3d position = currentObject.getPosition();
xPosition.setText(Double.toString(position.x));
yPosition.setText(Double.toString(position.y));
zPosition.setText(Double.toString(position.z));
Vector3d speed = currentObject.getSpeed();
xSpeed.setText(Double.toString(speed.x));
ySpeed.setText(Double.toString(speed.y));
zSpeed.setText(Double.toString(speed.z));
Vector3d orientation = Particle3D.makeEulerAnglesFromQ(currentObject.getOrientation());
Vector3d angularSpeed = currentObject.getAngularSpeed();
pitch.setText(Double.toString(orientation.x));
yaw.setText(Double.toString(orientation.y));
roll.setText(Double.toString(orientation.z));
pitchVel.setText(Double.toString(angularSpeed.x));
yawVel.setText(Double.toString(angularSpeed.y));
rollVel.setText(Double.toString(angularSpeed.z));
radius.setText(Double.toString(currentObject.getRadius()));
elasticity.setText(Double.toString(currentObject.getElasticity()));
name.setEnabled(true);
mass.setEnabled(true);
updateButton.setEnabled(true);
resetButton.setEnabled(true);
xPosition.setEnabled(true);
yPosition.setEnabled(true);
zPosition.setEnabled(true);
xSpeed.setEnabled(true);
ySpeed.setEnabled(true);
zSpeed.setEnabled(true);
pitch.setEnabled(true);
yaw.setEnabled(true);
roll.setEnabled(true);
pitchVel.setEnabled(true);
yawVel.setEnabled(true);
rollVel.setEnabled(true);
radius.setEnabled(true);
elasticity.setEnabled(true);
}
}
//Get the next / previous objects
public void nextButtonActionPerformed(java.awt.event.ActionEvent e) {
if(currentObject == null)
{
currentObject = (Particle3D)Particle3D.getParticles()[0];
}
else
{
currentObject.setAppearance(Physics3DThread.getNormalAppearance());
currentObject = Particle3D.getNextParticle(currentObject);
}
currentObject.setAppearance(Physics3DThread.getSelectedAppearance());
mainFrame.t.setLastShape(currentObject.getShape3D());
reset();
}
public void prevButtonActionPerformed(java.awt.event.ActionEvent e) {
if(currentObject == null)
{
currentObject = (Particle3D)Particle3D.getParticles()[0];
}
else
{
currentObject.setAppearance(Physics3DThread.getNormalAppearance());
currentObject = Particle3D.getPrevParticle(currentObject);
}
currentObject.setAppearance(Physics3DThread.getSelectedAppearance());
mainFrame.t.setLastShape(currentObject.getShape3D());
reset();
}
public void windowStateChanged(WindowEvent e)
{
if(mainFrame != null)
{
Dimension d = getToolkit().getScreenSize();
this.setLocation((int)d.getWidth() / 2 + mainFrame.getWidth() / 2, (int)d.getHeight() / 2 - getHeight() / 2);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -