Lightroom 4.0 Lat/Long not accurate enough
The latitude and longitude conversion in LR 4.0 map is not very accurate. I plan to use this feature extensively and right now the accuracy is marginal.
I enclose a screen shot that shows the problem. The first point is labelled: "Placed at right location in Google Earth". This point was placed in GE
exactly on that spot. Its coordinates are: 42.601830, -5.581437. The second point is labelled "Same location converted from LR 4.0". I placed that
point in LR 4.0 at the exact same location as the first point. LR marked that position as: 42°36'7" N 5°34'53" W which I hand-converted to
42.60194444, -5.58138888. The second arrow to the NE of the first is placed at that location. Close but no cigar. That makes your photo placement
feature in LR 4.0 not accurate enough for many uses. I have a KMZ that shows all this but I couldn't figure out how to submit it.
I'm glad to have the chance to use LR 4.0 which I like. I use LR all day long and have for years.
Bob Consoli
[email protected]
[email protected]
This looks like an instance of the bug described here:
http://feedback.photoshop.com/photoshop_family/topics/non_urban_latitude_longitude_search_ wildly_inaccurate_in_lightroom_4_beta
Please visit that post and add your opinion and vote.
Details:
It appears that LR 4 beta uses the Google Maps API to reverse geocode the original GPS location to the nearest named entity, such as a street address, and then uses the location of that entity to tag the photo, rather than the original GPS location.
In your example, this is what Google Maps shows when you search for 42.601830, -5.581437:
The green arrow is the exact location, and the red "A" is the nearest named entity, Plaza de San Marcos, 4. When you search for that GPS location in LR 4, it shows the location of the named entity (the red "A" above), rather than the original GPS location:
Similar Messages
-
Find my iphone service is so slow in china,and is not accurate enough
I am a iphone user in china,Find my iphone service is so slow,often can not be used.Guess it is because the service is provided by server in the US.There are so many iphone user in china ,Why can't you provide service in China?
By the way,Through find my iphone ,my iphone location in the map is far away from it's real location.You're not addressing Apple here, just users like yourself. Please submit your feature request to Apple at this link: http://www.apple.com/feedback
-
Accurate distance between points, lat/long to miles?
Hi,
I have a bunch of points as lat/long data in SRID 8307 format. From reading this forum, I understand than in Oracle 8.1.7 to get accurate distances I need to transform these points into a cartesian coordinate system.
My data is US-based, so I am using SRID 32775 in a command like the following:
EXECUTE SDO_CS.TRANSFORM_LAYER('restaurant_locations', 'location', 'restaurant_locations_32775', 32775);
This creates a new table with new point geometries and a rowid that I assume points back to the original 8307 table.
I've tried creating an index on the new table with cartesian coordinates, but I get this error:
CREATE INDEX restaurant_csp_idx
ON restaurant_locations_32775(geometry)
INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS('SDO_LEVEL=9 sdo_commit_interval=1000 layer_gtype=POINT' );
2 3 4 CREATE INDEX restaurant_csp_idx
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-13200: internal error [POINT] in spatial indexing.
ORA-29400: data cartridge error
ORA-13003: the specified range for a dimension is invalid
ORA-06512: at "MDSYS.MD", line 1673
ORA-06512: at line 1
ORA-13003: the specified range for a dimension is invalid
ORA-06512: at "MDSYS.MD", line 1673
ORA-06512: at line 1
ORA-06512: at "MDSYS.SDO_INDEX_METHOD", line 8
ORA-06512: at line 1
Here's the entry for the 32775-transformed points in the metadata table:
INSERT INTO USER_SDO_GEOM_METADATA
VALUES (
'restaurant_locations_32775',
'geometry',
MDSYS.SDO_DIM_ARRAY( -- 20X20 grid, virtually zero tolerance
MDSYS.SDO_DIM_ELEMENT('X', 1951908.05, 16230214.8, 0.005),
MDSYS.SDO_DIM_ELEMENT('Y', -6858801, 13168375.5, 0.005)
32775 -- SRID (reserved for future Spatial releases)
My questions are;
Do I need to build a new spatial index? It seems like once I transform the lat/long data to cartesian I need to build a new index as well ( on the 32775-transformed table ).
Is this the best way to approach distance queries with lat/long data? It seems like a lot of work, plus the second index and table really add to the overhead if a location changes.
Any ideas on why I can't build an index on the output table from my SDO_CS.TRANSFORM_LAYER() call? I used SDO_TUNE.ESTIMATE_TILING_LEVEL() and SDO_GEOM.VALIDATE_GEOMETRY() and got no complaints. I'm at a loss.
I also can't seem to get set autotrace to work. It works fine for any non-spatial query, but if I try to trace a spatial query, I get this error:
SQL> SELECT /*+ INDEX(restaurant_locations restaurant_sp_idx) */ r_a.restaurant_id
FROM restaurant_locations r_a, restaurant_locations r_b, user_sdo_geom_metadata m
WHERE r_b.restaurant_id != r_a.restaurant_id
AND SDO_GEOM.WITHIN_DISTANCE(r_a.location, m.diminfo, 1, r_b.location, m.diminfo) = 'TRUE'
AND r_b.restaurant_id = '5999';
2 3 4 5
RESTAURANT_ID
456999
456999
Execution Plan
ERROR:
ORA-01031: insufficient privileges
SP2-0612: Error generating AUTOTRACE EXPLAIN report
Statistics
49 recursive calls
28 db block gets
83 consistent gets
0 physical reads
0 redo size
415 bytes sent via SQL*Net to client
425 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
11 sorts (memory)
0 sorts (disk)
2 rows processed
I've looked at the arraysize, and I've made sure to run the trace-enabling sql and granted plustrace to my DB user.
Thanks for any help,
_jasonHi Jason,
The error on the index create is likely due to data being outside the bounds of the coordinate system as specified in user_sdo_geom_metadata.
If the data is stored in the point field then you can check the bounds by doing queries like the following, altering them for your table/column name (my table is cities_test, the geometry column name is location):
SQL> select min(a.location.sdo_point.x) from cities_test a;
MIN(A.LOCATION.SDO_POINT.X)
-157.80423
SQL> select max(a.location.sdo_point.x) from cities_test a;
MAX(A.LOCATION.SDO_POINT.X)
-71.017892
SQL> select max(a.location.sdo_point.y) from cities_test a;
MAX(A.LOCATION.SDO_POINT.Y)
61.178368
SQL> select min(a.location.sdo_point.y) from cities_test a;
MIN(A.LOCATION.SDO_POINT.Y)
21.31725
Do you need to build a spatial index?
Only if you are going to use spatial operators such as sdo_filter, sdo_relate, sdo_within_distance, and sdo_nn. If you have no requirements for these operators, then there is no reason to build a spatial index. From the trace query at the end of the posting, I suspect that you will need to have a spatial index.
Is this the best approach? Maybe, it depends on what your requirements are. If the data is static and performance is your highest priority, then maybe it is. If you have a requirement for a spatial index, then certainly it is. If you are only getting the distance between a few few known geometries, and you don't care about the time it takes to convert data on the fly, then you can use the sdo_cs.transform function within the sdo_geom.sdo_distance function to convert both geometries to the equal area projection.
The validation routines should have caught this - I checked and they do not for 8.1.7, and they do for 9i.
Regarding the set autotrace command, I'm not sure why it isn't working for you. It works for my generic scott/tiger account from a typical install.
hope some of this is useful.
dan
null -
i am facing this issue for the first time.....cannot sync my iphone 4s ...iphone cannot sync.you do not have enough permission for this operation...
i am adding videos to my iphone....
using windows 7
ios latest updatethere are lot of threads in respect to this issue but still unable to get the problem solved from the solutions available
-
HT202570 iPhone map navigation are not accurate compared to the actual location
The navigation arrow is always late compared to the actual location. its late around 3 to 4 seconds and I have tried on the two different iPhones that with the same result I reset location settings I reset the phone but no luck.
does anybody have the same problem and any ideas how to resolve them?The co-ordinates you posted are not very accurate (hopefully you edited them), there probably should be more digits after the decimal point for greater accuracy.
It seems like Apple Maps can search for Lat/Long but is unable to show it for a dropped pin. I'd suggest you get another app from the store…
https://itunes.apple.com/gb/app/find-my-latitude-longitude/id668745605
https://itunes.apple.com/gb/app/location+/id482094847
There are many so search around
It's also worth noting the location services doesn't just use GPS it also uses wifi & cellular towers to get a rough location in situations where GPS is not available (like indoors). GPS also takes a while to get a true lock, it can be upto 12.5 minutes because go how the satellites work. You will need to maintain a clear view of the sky for long enough to get accurate values.
Assisted GPS - Wikipedia, the free encyclopedia
P.S. Google maps in a desktop browser will show lat & long values, just be aware that there are different co-ordinate systems too - if things don't work make sure you are using the correct one -
Dist between two lat/long's in USA
Hello,
Can anyone please give me the function(Oracle or some other function) to find the distance between two points(Both of them are in lat/longs). Both the points are within the boundary of US.
Thanks,Hi,
In Oracle 8.1.6, we have Beta support
for Coordinate Systems. There is
Beta users guide available under PRODUCTS/SPATIAL.
With this functionality, you can calculate
the distance between two points
very accuratly.
Here is an example. I will go into details
below. Hope this helps. Thanks.
Dan
======
SAMPLE SQL: (sorry about the formatting)
select
mdsys.sdo_geom.sdo_length (
mdsys.sdo_cs.transform (
mdsys.sdo_geometry (2002, 8307, null,
mdsys.sdo_elem_info_array (1,2,1),
mdsys.sdo_ordinate_array (
-73.983014309,
40.749544981,
a.geometry.sdo_point.x,
a.geometry.sdo_point.y)),
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT(
'X', -180, 180, .00000005),
MDSYS.SDO_DIM_ELEMENT(
'Y', -90, 90, .00000005)),
41004),
.00000005) * 6.213712e-04 DISTANCE_IN_MILES
from test_abi a
where
mdsys.sdo_nn (
a.geometry,
mdsys.sdo_geometry (
1, 8307,
mdsys.sdo_point_type (-73.983014309,
40.749544981,
null),
null, null),
'SDO_NUM_RES = 1') = 'TRUE';
DESCRIPTION:
============
1) The above query is returning the
nearest point to
(-73.983014309, 40.749544981)
and also returning the distance in miles.
TEST_ABI.geometry is stored in
longitude/latitude with 8307
as the SRID.
Note, if you set the SRID in the
SDO_GEOMETRY object, you must also
set the SRID in USER_SDO_GEOM_METADATA.
To find out more info on SRID 8307,
you can execute the following:
select wktext
from mdsys.cs_srs
where srid = 8307;
SDO_NN is the operator used to find
the nearest neighbor.
For nearest neighbor queries, you
may want to try using RTREE indexes,
also Beta in 8.1.6.
To create an RTREE index, omit
SDO_LEVEL and SDO_NUMTILES from
the create index statement of your
spatial index.
We plan to fully profile RTREE indexes
in 8.1.7 and recommend them when
appropriate. Nearest neighbor is an
excellent candidate for an RTREE index.
2) In the SELECT clause, we are calling
two functions:
SDO_LENGTH
SDO_CS.TRANSFORM
The first argument passed into SDO_LENGTH
is the return value from
CS_TRANSFORM (which will be a
projected SDO_GEOMETRY object).
The second argument to SDO_LENGTH
is an SDO_TOLERANCE.
3) The first argument to CS_TRANSFORM
is an SDO_GEOMETRY constructor for a
line string, where the first point of
the linestring is
(-73.983014309, 40.749544981),
and the second point is the nearest
neighbor resulting from SDO_NN.
This goal here is to project the
linestring so we can get an accurate
result from SDO_LENGTH.
The second argument to CS_TRANSFORM
a dim_array.
The third argument to CS_TRANSFORM
is the target SRID. In this example,
SRID 41004 is used. This will be
fairly accurate for the continental US.
The geometry constructor for the
linestring will be projected to
SRID 41004.
If more accurate results are desired,
you should use an SRID that corresponds
to a specific state plane projection.
Query the WKTEXT column in MDSYS.CS_SRS
to pick appropriate SRID's for projection.
i.e. If I knew my nearest neighbor result
is going to be in Georgia, I might
use SRID 1001 instead of 41004.
4) In the result of the select list, I am
multiplying by 6.213712e-04,
the conversion factor from meters to
miles.
Hope this helps. Thanks.
Dan -
Timer Class not accurate and slows down my animation!?
Does anyknow how why my timer object is not accurate and why it slows down my animation that is also present on my GUI at the same time?
I have a timer in the form of 0.00 the left of the decimal point should represent a second but it doesnt, run my code and see for yourselves. below is my code if anyone can fix these 2 problems i will be very thankfull:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.Shape;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.Timer;
import java.sql.*;
import java.text.*;
public class RT extends JFrame implements MouseMotionListener
//declares a number of swing componets to be used for the JFrame
private JTextArea infoJTextArea;
private JPanel showJPanel, startJPanel, helpJPanel, resultsJPanel;
private JLabel de4JLabel, de3JLabel, mainTitleJLabel, nameJLabel, ageJLabel,
deJLabel, de1JLabel, de2JLabel, timeJLabel,nameResultJLabel,
ageResultJLabel, timeResultsJLabel, ratingJLabel, coJLabel, shJLabel;
private JTextField nameJTextField, ageJTextField,nameResultJTextField,
ageResultsJTextField, timeResultsJTextField, ratingJTextField;
private JButton exitJButton, showJButton, loginJButton, startTestJButton,
tempObjectJButton;
private JScrollPane scroll;
public JComboBox colourJComboBox, sizeJComboBox, shapeJComboBox, speedJComboBox;
private static Connection dbcon;
int temp=0;
private String[] col = { "Red", "Blue", "Green","Yellow","Orange","Black"};
private String[] shapeA = { "Normal Rectangle", "Normal Circle", "Normal Oval","BIG Rectangle", "BIG Circle","BIG Oval","small rectangle","small circle", "small oval"};
private String[] speed = { "Fast", "Normal", "Slow"};
public int checking;
static int flag, flagshape, flagspeed;
// creates and sets up a number of varibles to be used by the class
public long timeLimit = 0;
DecimalFormat timeDec = new DecimalFormat (":00");
public int age;
public String name, shapeChoice="Normal Rectangle(Never selected anything)", colourChoice="Black(Never selected anything)";
private Timer TimeNow;
private JTextField timerJTextField;
ShapeMovingPanel testJPanel;
Random seed;
Shape shape;
Shape[] shapes = {new Rectangle2D.Double(50, 30, 75, 25),new Ellipse2D.Double(175, 125, 50, 50),new Ellipse2D.Double(90, 100, 75, 35),new Rectangle2D.Double(50, 30, 175, 125),new Ellipse2D.Double(175, 125, 125, 125),new Ellipse2D.Double(90, 100, 175, 135),new Rectangle2D.Double(50, 30, 55, 15),new Ellipse2D.Double(175, 125, 20,20),new Ellipse2D.Double(90, 100, 55, 15)};
//50, 30, 75, 25 change starting point here****************************************
public RT() // constructor method
seed = new Random();
shape = shapes[0];
//sets up the Timer
TimeNow = new Timer((1), new TimerListener());//++++++++++++++++++++++++++timer -17
createUserInterface(); // method that creates the user interface
private void createUserInterface()
new Thread(new Runnable()
public void run()
String results = "";
int count = 0;
boolean journeyOn = true;
while(journeyOn && count < 3)
try
Thread.sleep(1000);
catch(InterruptedException ie)
System.err.println("show interrupt: " + ie.getMessage());
journeyOn = false;
results += count++ + ", ";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
dbcon = DriverManager.getConnection("jdbc:odbc:CMT3991", "", ""); // Access/ODBC
//connection ash used to connect to the user table in access
} catch(Exception eee)
eee.printStackTrace(); //exception if error occurs during the driver connection
System.out.println("* UserDA CONNECTED *");
}).start();
Container contentPane = getContentPane();
contentPane.setLayout( null );
// set up infoJTextField
infoJTextArea = new JTextArea();
infoJTextArea.setBounds( 20, 420, 550, 170 );
infoJTextArea.setEditable( false);
infoJTextArea.setText("\n Welcome to the reaction testing program, this " +
"program is designed to test your reactions in a \n"+
" number of different situations.\n"+"\n Please " +
"enter your name and age, or select show previous results.");
contentPane.add( infoJTextArea );
scroll = new JScrollPane(infoJTextArea);
scroll.setBounds( 20, 420, 550, 170 );
contentPane.add( scroll );
startJPanel = new JPanel();
startJPanel.setBounds( 16,16, 560, 375 );
startJPanel.setBorder(
new TitledBorder( "WELCOME - PLEASE ENTER YOUR NAME AND AGE:" ) );
startJPanel.setLayout( null );
contentPane.add( startJPanel );
//sets up a JPanel
mainTitleJLabel = new JLabel();
mainTitleJLabel.setIcon( new ImageIcon( "title.png" ) );
mainTitleJLabel.setBounds( 30, 10, 520, 170 );
mainTitleJLabel.setHorizontalAlignment( JLabel.CENTER );
startJPanel.add( mainTitleJLabel );
//creates a newJLabel
nameJLabel= new JLabel();
nameJLabel.setBounds( 52, 200, 70, 35 );
nameJLabel.setText("Name:");
startJPanel.add( nameJLabel);
//creates a new JTextField
nameJTextField = new JTextField();
nameJTextField.setBounds( 130, 200, 300, 24 );
startJPanel.add( nameJTextField );
//creates a newJLabel
ageJLabel = new JLabel();
ageJLabel.setBounds( 52, 245, 100, 35 );
ageJLabel.setText("Age:");
startJPanel.add( ageJLabel );
//creates a new JTextField
ageJTextField = new JTextField();
ageJTextField.setBounds( 130, 245, 300, 24 );
startJPanel.add( ageJTextField );
//creates a JButton
loginJButton = new JButton();
loginJButton.setBounds( 440, 200, 90, 24 );
loginJButton.setText( "Login" );
loginJButton.setBackground( Color.YELLOW );
startJPanel.add( loginJButton );
loginJButton.setEnabled(true);
// loginJButton.setVisible(true);
loginJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
// not necessary to pass events to these methods...
Login(); // calls the Login method
//creates a JButton
showJButton = new JButton();
showJButton.setBounds( 200, 320, 180, 24 );
showJButton.setText( "Show previous results" );
showJButton.setBackground( Color.YELLOW );
startJPanel.add( showJButton );
showJButton.setEnabled(true);
// showJButton.setVisible(true);
showJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
showData(); // calls the showData method
//sets up a JPanel
showJPanel = new JPanel();
showJPanel.setBounds( 16,16, 560, 375 );
showJPanel.setBorder(new TitledBorder( "PREVIOUS RESULTS:" ) );
showJPanel.setLayout( null );
contentPane.add( showJPanel );
//sets up a JPanel
helpJPanel = new JPanel();
helpJPanel.setBounds( 16,16, 560, 375 );
helpJPanel.setBorder(
new TitledBorder( "CHOOSE A NUMBER OF OPTIONS AND GET READY:" ) );
helpJPanel.setLayout( null );
helpJPanel.setVisible(false);
contentPane.add( helpJPanel );
//creates a newJLabel
deJLabel= new JLabel();
deJLabel.setBounds( 23, 390, 530, 35 );
deJLabel.setText("Details:");
contentPane.add( deJLabel);
//creates a newJLabel
coJLabel= new JLabel();
coJLabel.setBounds( 70, 40, 530, 35 );
coJLabel.setText("Choose a colour:");
helpJPanel.add( coJLabel);
//creates a newJLabel
de1JLabel= new JLabel();
de1JLabel.setBounds( 25, 100, 530, 35 );
de1JLabel.setText("You are about to start the reaction test, when you " +
"press the start button it will begin.");
helpJPanel.add( de1JLabel);
//creates a newJLabel
de1JLabel= new JLabel();
de1JLabel.setBounds(160, 145, 530, 35 );
de1JLabel.setText("Simply catch the moving item and click.");
helpJPanel.add( de1JLabel);
colourJComboBox = new JComboBox( col );
colourJComboBox.setBounds( 70, 70, 135, 21 );
colourJComboBox.setMaximumRowCount( 3 );
helpJPanel.add( colourJComboBox );
colourJComboBox.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
colourChoice="Black";
int x = colourJComboBox.getSelectedIndex();
if( x == 0)
flag = 1;
colourChoice="Red";
else if(x == 1)
flag = 2;
colourChoice="Blue";
else if(x == 2)
flag = 3;
colourChoice="Green";
else if(x == 3)
flag = 4;
colourChoice="Yellow";
else if(x == 4)
flag = 5;
colourChoice="Orange";
else if(x == 5)
flag = 6;
colourChoice="Black";
shJLabel= new JLabel();
shJLabel.setBounds( 340, 40, 530, 35 );
shJLabel.setText("Choose a shape and size:");
helpJPanel.add( shJLabel);
shapeJComboBox = new JComboBox( shapeA );
shapeJComboBox.setBounds( 340, 70, 135, 21 );
shapeJComboBox.setMaximumRowCount( 3 );
helpJPanel.add( shapeJComboBox );
shapeJComboBox.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
int xshape = shapeJComboBox.getSelectedIndex();
//shapeChoice="Normal Rectangle";
if( xshape == 0)
{ flagshape = 1;
shapeChoice="Normal Rectangle";
else if(xshape == 1)
{ flagshape = 2;
shapeChoice="Normal Circle";
else if(xshape == 2)//**********here
{ flagshape = 3;
shapeChoice="Normal Oval";
else if(xshape == 3)
{ flagshape = 4;
shapeChoice="BIG Rectangle";
else if(xshape == 4)
{ flagshape = 5;
shapeChoice="BIG Circle";
else if(xshape == 5)
{ flagshape = 6;
shapeChoice="BIG Oval";
else if(xshape == 6)
flagshape = 7;
shapeChoice="small rectangle";
else if(xshape == 7)
{ flagshape = 8;
shapeChoice="small circle";
else if(xshape == 8)
{ flagshape = 9;
shapeChoice="small oval";
/* speedJComboBox = new JComboBox( speed );
speedJComboBox.setBounds( 10, 150, 135, 21 );
speedJComboBox.setMaximumRowCount( 3 );
helpJPanel.add( speedJComboBox );
speedJComboBox.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
int xspeed = speedJComboBox.getSelectedIndex();
if( xspeed == 0)
flagspeed = 1;
else if(xspeed == 1)
flagspeed = 2;
else
flagspeed = 3;
System.out.println(flagspeed);
//creates a newJLabel
de2JLabel= new JLabel();
de2JLabel.setBounds( 20, 380, 70, 35 );
de2JLabel.setText("Details:");
helpJPanel.add( de2JLabel);
//creates a JButton
startTestJButton = new JButton();
startTestJButton.setBounds( 185, 205, 180, 60 );
startTestJButton.setText( "START" );
startTestJButton.setBackground( Color.YELLOW );
helpJPanel.add( startTestJButton );
startTestJButton.setEnabled(true);
// startTestJButton.setVisible(true);
startTestJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
startTest();
//sets up an animation panel
testJPanel = new ShapeMovingPanel(this);
testJPanel.setBounds( 16,16, 560, 375 );
testJPanel.setBorder(new TitledBorder("Click the moving object:"));
testJPanel.setLayout( null );
testJPanel.setVisible(false);
contentPane.add( testJPanel );
testJPanel.addMouseMotionListener(this);
//creates a newJLabel
timeJLabel = new JLabel();
timeJLabel.setBounds( 440, 330, 100, 35 );
timeJLabel.setText("Time:");
testJPanel.add( timeJLabel );
//creates a new JTextField
timerJTextField = new JTextField();
timerJTextField.setBounds( 480, 335, 60, 24 );
timerJTextField.setText(String.valueOf(timeLimit));
timerJTextField.setHorizontalAlignment(JTextField.CENTER );
timerJTextField.setEditable(false);
timerJTextField.setBackground( Color.YELLOW );
testJPanel.add( timerJTextField );
resultsJPanel = new JPanel();
resultsJPanel.setBounds( 16,16, 560, 375 );
resultsJPanel.setBorder(new TitledBorder("HERE ARE YOUR RESULTS:"));
resultsJPanel.setLayout( null );
resultsJPanel.setVisible(false);
contentPane.add( resultsJPanel );
de3JLabel= new JLabel();
de3JLabel.setBounds(20, 200, 530, 35 );
de3JLabel.setText("Below is also the movements you made with your mouse, " +
"you may exit the program now.");
resultsJPanel.add( de3JLabel);
de4JLabel= new JLabel();
de4JLabel.setBounds(135, 245, 530, 35 );
de4JLabel.setText("Thank you for trying the Reaction Testing program");
resultsJPanel.add( de4JLabel);
//creates a newJLabel
nameResultJLabel= new JLabel();
nameResultJLabel.setBounds( 62, 55, 50, 35 );
nameResultJLabel.setText("Name:");
resultsJPanel.add( nameResultJLabel);
//creates a new JTextField
nameResultJTextField = new JTextField();
nameResultJTextField.setBounds( 140, 55, 300, 24 );
resultsJPanel.add( nameResultJTextField );
nameResultJTextField.setEditable(false);
//creates a newJLabel
ageResultJLabel = new JLabel();
ageResultJLabel.setBounds( 62, 90, 100, 35 );
ageResultJLabel.setText("Age:");
resultsJPanel.add( ageResultJLabel );
//creates a new JTextField
ageResultsJTextField = new JTextField();
ageResultsJTextField.setBounds( 140, 90, 300, 24 );
resultsJPanel.add( ageResultsJTextField );
ageResultsJTextField.setEditable(false);
//creates a newJLabel
timeResultsJLabel = new JLabel();
timeResultsJLabel.setBounds( 62, 125, 100, 35 );
timeResultsJLabel.setText("Time taken:");
resultsJPanel.add( timeResultsJLabel );
//creates a new JTextField
timeResultsJTextField = new JTextField();
timeResultsJTextField.setBounds( 140, 125, 300, 24 );
resultsJPanel.add( timeResultsJTextField );
timeResultsJTextField.setEditable(false);
//creates a newJLabel
ratingJLabel = new JLabel();
ratingJLabel.setBounds( 62, 160, 100, 35 );
ratingJLabel.setText("Your Rating:");
resultsJPanel.add( ratingJLabel );
ratingJTextField = new JTextField();
ratingJTextField.setBounds( 140, 160, 300, 24 );
resultsJPanel.add( ratingJTextField );
ratingJTextField.setEditable(false);
//creates a JButton
exitJButton = new JButton();
exitJButton.setBounds( 235, 310, 90, 24 );
exitJButton.setText( "Exit" );
exitJButton.setBackground( Color.WHITE );
resultsJPanel.add( exitJButton );
exitJButton.setEnabled(true);
exitJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when exitJButton is pressed
public void actionPerformed( ActionEvent event )
System.exit(0); //closes the programme
}); // end anonymous inner class
addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
// set properties of application's window
setTitle( "Reaction Tester - CMT3991" ); // set JFrame's title bar string
//setSize( 1280,995 ); // set width and height of JFrame
setSize( 608, 650 ); // set width and height of JFrame
setVisible( true ); // display JFrame on screen
//** set up of method main */
public static void main( String[] args )
RT application = new RT();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
} // end method main
* action listener for TimeNow Timer
private class TimerListener implements ActionListener
public void actionPerformed(ActionEvent event)
timeLimit ++;
if (timeLimit==100)
temp++;
timeLimit=0;
timerJTextField.setText(String.valueOf(temp +""+timeDec.format(timeLimit)));
private void Login()
try
name = nameJTextField.getText();
age = Integer.parseInt(ageJTextField.getText());
startJPanel.setVisible(false);
showJPanel.setVisible(false);
helpJPanel.setVisible(true);
infoJTextArea.setText("\n Welcome "+name+" you will soon know how " +
"fast your reactions are.");
catch (NumberFormatException exception)
JOptionPane.showMessageDialog(this,
"There is either a blank field or a number hasn't been entered",
"Input Type error", JOptionPane.ERROR_MESSAGE);
//shows this is something has been entered wrong
private void startTest()
helpJPanel.setVisible(false);
// System.out.println(""+ seed.nextInt(shapes.length));
//shape = shapes[seed.nextInt(shapes.length)];//****************************
if (flagshape==1)
shape = shapes[0];// changed colour here***************************
else if (flagshape==2)
shape = shapes[1];// changed colour here***************************
else if (flagshape==3)
shape = shapes[2];// changed colour here***************************
else if (flagshape==4)
shape = shapes[3];// changed colour here***************************
else if (flagshape==5)
shape = shapes[4];// changed colour here***************************
else if (flagshape==6)
shape = shapes[5];// changed colour here***************************
else if (flagshape==7)
shape = shapes[6];// changed colour here***************************
else if (flagshape==8)
shape = shapes[7];// changed colour here***************************
else if (flagshape==9)
shape = shapes[8];// changed colour here***************************
// shape = shapes[8];
System.out.println(shape.toString());
testJPanel.setShape(shape);
testJPanel.setVisible(true);
testJPanel.start();
infoJTextArea.setText("");
TimeNow.start();
* called by animation panel after shape is clicked
public void stop()
TimeNow.stop();
movingObject();
* this will compete with your animation
* ie, it will slow it down or make it appear jerky
public void mouseMoved(MouseEvent e)
saySomething("\n Mouse moved", e);
public void mouseDragged(MouseEvent e)
saySomething("\n Mouse dragged", e);
void saySomething(String eventDescription, MouseEvent e)
infoJTextArea.append(eventDescription
+ " (" + e.getX() + "," + e.getY() + ")");
infoJTextArea.setCaretPosition(infoJTextArea.getDocument().getLength());
private void movingObject()
TimeNow.stop();
//timeLimit;
testJPanel.setVisible(false);
resultsJPanel.setVisible(true);
nameResultJTextField.setText(name);
ageResultsJTextField.setText(String.valueOf(age)+" years old");
System.out.println("shape used: "+shapeChoice);
String mouse = infoJTextArea.getText();
String tick = timerJTextField.getText();
timeResultsJTextField.setText(tick);
try
// create a file called welch.txt
final FileWriter outputFile = new FileWriter("Backup_of_"+name+"s_results.txt", true);
final BufferedWriter outputBuffer = new BufferedWriter(outputFile);
// converts data to a formatted string
final PrintWriter printstream = new PrintWriter(outputBuffer);
printstream.println("THIS IS A BACKUP");
printstream.println("The person's name is: "+name);
printstream.println("There age is: "+age);
printstream.println("Time taken: "+tick+" seconds");
printstream.println("The Shape and size was: "+shapeChoice);
printstream.println("It's colour was: "+colourChoice);
printstream.println("The mouse moved as follows: "+mouse);
//states what needs to be printed to the new file
printstream.close(); // closes teh printstream
catch(IOException eio)
//catchs the IO exception
if(temp<5.00)
ratingJTextField.setText("Thierry Henry");
else if(timeLimit<=10)
ratingJTextField.setText("Average");
else if(timeLimit<=15)
ratingJTextField.setText("You gotta be fat or something");
else if(timeLimit<=20)
ratingJTextField.setText("See a doctor");
else if(timeLimit>20)
ratingJTextField.setText("DO YOU KNOW WHAT YOU DOING!?");
String rate=ratingJTextField.getText();
try
Statement st = dbcon.createStatement();
String cmd = "INSERT INTO users (Name, Age, Time_Taken, Rating, Mouse_Movement,Shape_and_Size, Shape_Colour) VALUES ('" + name + "' , " + age + " , '" + tick + "' , '" + rate+"','"+ mouse+"','"+ shapeChoice+"','"+ colourChoice+"');";
//creates a SQL statement and executes it
st.executeUpdate(cmd);
st.close();//close the statement
} catch (Exception eDA)
eDA.printStackTrace();
private void showData()
// pretend this takes awhile -> 3 seconds (count)
new Thread(new Runnable()
public void run()
String results = "";
int count = 0;
boolean journeyOn = true;
while(journeyOn && count < 3)
try
Thread.sleep(1000);
catch(InterruptedException ie)
System.err.println("show interrupt: " + ie.getMessage());
journeyOn = false;
results += count++ + ", ";
infoJTextArea.setText("Here are your results:\n"+results);
startJPanel.setVisible(false);
showJPanel.setVisible(true);
}).start();
class ShapeMovingPanel extends JPanel implements ActionListener
RT host;
Timer timer;
Shape shape, xformed;
int x, y, dx, dy;
public ShapeMovingPanel(RT rt)
timer = new Timer(-20, this);
host = rt;
/* if (rt.flagspeed==1)
timer = new Timer(-20, this);
else if (rt.flagspeed==2)
timer = new Timer(20, this);
else if (rt.flagspeed==3)
timer = new Timer(100, this);
//change speed here******************************
x = 0;//0
y = 0;//0
dx =2;//2
dy = 3;//3
//setBackground(Color.pink);
addMouseListener(new ShapeTender());
public void actionPerformed(ActionEvent e)
int w = getWidth();
int h = getHeight();
if(w <= 0 || h <= 0)
return;
checkBoundries(w,h);
x += dx;
y += dy;
repaint();
private void checkBoundries(int w, int h)
Rectangle r = xformed.getBounds();
Insets insets = getInsets();
if(r.x + dx < insets.left || r.x + r.width + dx > w - insets.right)
dx *= -1;
if(r.y + dy < insets.top || r.y + r.height + dy > h - insets.bottom)
dy *= -1;
protected void paintComponent(Graphics g)
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
AffineTransform at = AffineTransform.getTranslateInstance(x, y);
if (RT.flag==1)
{g2.setPaint(Color.red);// changed colour here***************************
else if (RT.flag==2)
{g2.setPaint(Color.blue);// changed colour here***************************
else if (RT.flag==3)
{g2.setPaint(Color.green);// changed colour here***************************
else if (RT.flag==4)
{g2.setPaint(Color.yellow);// changed colour here***************************
else if (RT.flag==5)
{g2.setPaint(Color.orange);// changed colour here***************************
else if (RT.flag==6)
{g2.setPaint(Color.black);// changed colour here***************************
xfoI'm (being lazy and) using the older RT app posted on your last thread. I removed the
TimeNow timer from the RT class and used System.currentTimeMillis (as you requested) to
determine the elapsed time during the animation (see "startTest", "stop" and
"movingObject" methods). Also changed the DecimalFormat to NumberFormat and set the
"maximumFractionDigits" to "2" so it will truncate the fraction to two digits (more simple
than before). Made arrangements for the ShapeMovingPanel class to update the
"timerJTextField" during the animation (RT.updateTime method).
The MouseMotionListener is causing the animation to appear jerky and uneven. The
"mouseMoved" method is very busy while the mouse is moving. You might consider recording
the "mousePressed" events instead of the "mouseMoved" events, ie, the events where the user
is attempting to click inside the moving shape. It would allow the app to be more
responsive and might eliminate the uneven motion of the animating shape.
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.Timer;
public class RT extends JFrame implements MouseMotionListener
//declares a number of swing componets to be used for the JFrame
private JTextArea infoJTextArea;
private JPanel showJPanel, startJPanel, helpJPanel, resultsJPanel;
private JLabel de4JLabel, de3JLabel, mainTitleJLabel, nameJLabel, ageJLabel,
deJLabel, de1JLabel, de2JLabel, timeJLabel,nameResultJLabel,
ageResultJLabel, timeResultsJLabel, ratingJLabel;
private JTextField nameJTextField, ageJTextField,nameResultJTextField,
ageResultsJTextField, timeResultsJTextField, ratingJTextField;
private JButton exitJButton, showJButton, loginJButton, startTestJButton,
tempObjectJButton;
private JScrollPane scroll;;
// creates and sets up a number of varibles to be used by the class
private long startTime;
private long endTime;
public int timeLimit = 0;
public int age;
public String name;
private JTextField timerJTextField;
ShapeMovingPanel testJPanel;
NumberFormat timeDec;
Random seed;
Shape shape;
Shape[] shapes = {
new Rectangle2D.Double(50, 30, 75, 25),
new Ellipse2D.Double(175, 125, 50, 50),
new Ellipse2D.Double(90, 100, 75, 35)
public RT()
timeDec = NumberFormat.getInstance();
timeDec.setMaximumFractionDigits(2);
seed = new Random();
shape = shapes[0];
createUserInterface();
private void createUserInterface()
Container contentPane = getContentPane();
contentPane.setLayout( null );
// set up infoJTextField
infoJTextArea = new JTextArea();
infoJTextArea.setBounds( 20, 420, 550, 170 );
infoJTextArea.setEditable( false);
infoJTextArea.setText("\n Welcome to the reaction testing program, this " +
"program is designed to test your reactions in a \n"+
" number of different situations.\n"+"\n Please " +
"enter your name and age, or select show previous results.");
contentPane.add( infoJTextArea );
scroll = new JScrollPane(infoJTextArea);
scroll.setBounds( 20, 420, 550, 170 );
contentPane.add( scroll );
startJPanel = new JPanel();
startJPanel.setBounds( 16,16, 560, 375 );
startJPanel.setBorder(
new TitledBorder( "WELCOME -PLEASE ENTER YOUR NAME AND AGE:" ) );
startJPanel.setLayout( null );
contentPane.add( startJPanel );
//sets up a JPanel
mainTitleJLabel = new JLabel();
mainTitleJLabel.setIcon( new ImageIcon( "title.png" ) );
mainTitleJLabel.setBounds( 30, 10, 520, 170 );
mainTitleJLabel.setHorizontalAlignment( JLabel.CENTER );
startJPanel.add( mainTitleJLabel );
//creates a newJLabel
nameJLabel= new JLabel();
nameJLabel.setBounds( 52, 200, 70, 35 );
nameJLabel.setText("Name:");
startJPanel.add( nameJLabel);
//creates a new JTextField
nameJTextField = new JTextField();
nameJTextField.setBounds( 130, 200, 300, 24 );
startJPanel.add( nameJTextField );
//creates a newJLabel
ageJLabel = new JLabel();
ageJLabel.setBounds( 52, 245, 100, 35 );
ageJLabel.setText("Age:");
startJPanel.add( ageJLabel );
//creates a new JTextField
ageJTextField = new JTextField();
ageJTextField.setBounds( 130, 245, 300, 24 );
startJPanel.add( ageJTextField );
//creates a JButton
loginJButton = new JButton();
loginJButton.setBounds( 440, 200, 90, 24 );
loginJButton.setText( "Login" );
loginJButton.setBackground( Color.YELLOW );
startJPanel.add( loginJButton );
loginJButton.setEnabled(true);
loginJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
// not necessary to pass events to these methods...
Login(); // calls the Login method
//creates a JButton
showJButton = new JButton();
showJButton.setBounds( 200, 320, 180, 24 );
showJButton.setText( "Show previous results" );
showJButton.setBackground( Color.YELLOW );
startJPanel.add( showJButton );
showJButton.setEnabled(true);
showJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
showData(); // calls the showData method
//sets up a JPanel
showJPanel = new JPanel();
showJPanel.setBounds( 16,16, 560, 375 );
showJPanel.setBorder(new TitledBorder( "PREVIOUS RESULTS:" ) );
showJPanel.setLayout( null );
contentPane.add( showJPanel );
//sets up a JPanel
helpJPanel = new JPanel();
helpJPanel.setBounds( 16,16, 560, 375 );
helpJPanel.setBorder(
new TitledBorder( "HELP DETAILS:" ) );
helpJPanel.setLayout( null );
helpJPanel.setVisible(false);
contentPane.add( helpJPanel );
//creates a newJLabel
deJLabel= new JLabel();
deJLabel.setBounds( 23, 390, 530, 35 );
deJLabel.setText("Details:");
contentPane.add( deJLabel);
//creates a newJLabel
de1JLabel= new JLabel();
de1JLabel.setBounds( 25, 100, 530, 35 );
de1JLabel.setText("You are about to start the reaction test, when you " +
"press the start button it will begin.");
helpJPanel.add( de1JLabel);
//creates a newJLabel
de1JLabel= new JLabel();
de1JLabel.setBounds(160, 145, 530, 35 );
de1JLabel.setText("Simply catch the moving item and click.");
helpJPanel.add( de1JLabel);
//creates a newJLabel
de2JLabel= new JLabel();
de2JLabel.setBounds( 20, 380, 70, 35 );
de2JLabel.setText("Details:");
helpJPanel.add( de2JLabel);
//creates a JButton
startTestJButton = new JButton();
startTestJButton.setBounds( 185, 205, 180, 60 );
startTestJButton.setText( "START" );
startTestJButton.setBackground( Color.YELLOW );
helpJPanel.add( startTestJButton );
startTestJButton.setEnabled(true);
startTestJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when search is pressed
public void actionPerformed( ActionEvent event )
startTest();
//sets up an animation panel
testJPanel = new ShapeMovingPanel(this);
testJPanel.setBounds( 16,16, 560, 375 );
testJPanel.setBorder(new TitledBorder("Click the moving object:"));
testJPanel.setLayout( null );
testJPanel.setVisible(false);
contentPane.add( testJPanel );
// this is causing the animation to appear uneven
// you can try the app with and without this to see
// testJPanel.addMouseMotionListener(this);
//creates a newJLabel
timeJLabel = new JLabel();
timeJLabel.setBounds( 440, 330, 100, 35 );
timeJLabel.setText("Time:");
testJPanel.add( timeJLabel );
//creates a new JTextField
timerJTextField = new JTextField();
timerJTextField.setBounds( 480, 335, 60, 24 );
timerJTextField.setText(String.valueOf(timeLimit));
timerJTextField.setHorizontalAlignment(JTextField.CENTER );
timerJTextField.setEditable(false);
timerJTextField.setBackground( Color.YELLOW );
testJPanel.add( timerJTextField );
resultsJPanel = new JPanel();
resultsJPanel.setBounds( 16,16, 560, 375 );
resultsJPanel.setBorder(new TitledBorder("HERE ARE YOUR RESULTS:"));
resultsJPanel.setLayout( null );
resultsJPanel.setVisible(false);
contentPane.add( resultsJPanel );
de3JLabel= new JLabel();
de3JLabel.setBounds(20, 200, 530, 35 );
de3JLabel.setText("Below is also the movements you made with your mouse, " +
"you may exit the program now.");
resultsJPanel.add( de3JLabel);
de4JLabel= new JLabel();
de4JLabel.setBounds(135, 245, 530, 35 );
de4JLabel.setText("Thank you for trying the Reaction Testing program");
resultsJPanel.add( de4JLabel);
//creates a newJLabel
nameResultJLabel= new JLabel();
nameResultJLabel.setBounds( 62, 55, 50, 35 );
nameResultJLabel.setText("Name:");
resultsJPanel.add( nameResultJLabel);
//creates a new JTextField
nameResultJTextField = new JTextField();
nameResultJTextField.setBounds( 140, 55, 300, 24 );
resultsJPanel.add( nameResultJTextField );
nameResultJTextField.setEditable(false);
//creates a newJLabel
ageResultJLabel = new JLabel();
ageResultJLabel.setBounds( 62, 90, 100, 35 );
ageResultJLabel.setText("Age:");
resultsJPanel.add( ageResultJLabel );
//creates a new JTextField
ageResultsJTextField = new JTextField();
ageResultsJTextField.setBounds( 140, 90, 300, 24 );
resultsJPanel.add( ageResultsJTextField );
ageResultsJTextField.setEditable(false);
//creates a newJLabel
timeResultsJLabel = new JLabel();
timeResultsJLabel.setBounds( 62, 125, 100, 35 );
timeResultsJLabel.setText("Time taken:");
resultsJPanel.add( timeResultsJLabel );
//creates a new JTextField
timeResultsJTextField = new JTextField();
timeResultsJTextField.setBounds( 140, 125, 300, 24 );
resultsJPanel.add( timeResultsJTextField );
timeResultsJTextField.setEditable(false);
//creates a newJLabel
ratingJLabel = new JLabel();
ratingJLabel.setBounds( 62, 160, 100, 35 );
ratingJLabel.setText("Your Rating:");
resultsJPanel.add( ratingJLabel );
ratingJTextField = new JTextField();
ratingJTextField.setBounds( 140, 160, 300, 24 );
resultsJPanel.add( ratingJTextField );
ratingJTextField.setEditable(false);
//creates a JButton
exitJButton = new JButton();
exitJButton.setBounds( 235, 310, 90, 24 );
exitJButton.setText( "Exit" );
exitJButton.setBackground( Color.WHITE );
resultsJPanel.add( exitJButton );
exitJButton.setEnabled(true);
exitJButton.addActionListener(
new ActionListener() // adds an action listener,anonymous inner class
// event handler called when exitJButton is pressed
public void actionPerformed( ActionEvent event )
System.exit(0); //closes the programme
}); // end anonymous inner class
addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
// set properties of application's window
setTitle( "Reaction Tester - CMT3991" ); // set JFrame's title bar string
//setSize( 1280,995 ); // set width and height of JFrame
setSize( 608, 650 ); // set width and height of JFrame
setVisible( true ); // display JFrame on screen
//** set up of method main */
public static void main( String[] args )
RT application = new RT();
application.setDefaultCloseOperation( EXIT_ON_CLOSE );
} // end method main
private void Login()
try
name = nameJTextField.getText();
age = Integer.parseInt(ageJTextField.getText());
startJPanel.setVisible(false);
showJPanel.setVisible(false);
helpJPanel.setVisible(true);
infoJTextArea.setText("\n Welcome "+name+" you will soon know how " +
"fast your reactions are");
catch (NumberFormatException exception)
JOptionPane.showMessageDialog(this,
"There is either a blank field or a number hasn't been entered",
"Input Type error", JOptionPane.ERROR_MESSAGE);
//shows this is something has been entered wrong
private void startTest()
helpJPanel.setVisible(false);
shape = shapes[seed.nextInt(shapes.length)];
testJPanel.setShape(shape);
testJPanel.setVisible(true);
testJPanel.start();
startTime = System.currentTimeMillis();
infoJTextArea.setText("");
* called by animation panel after shape is clicked
public void stop()
endTime = System.currentTimeMillis();
movingObject();
* called by timer actionPerformed in ShapeMovingPanel
public void updateTime()
long timeNow = System.currentTimeMillis();
double elapsed = (timeNow - startTime)/1000.0;
timerJTextField.setText(timeDec.format(elapsed));
* this will compete with your animation
* ie, it will slow it down or make it appear jerky
public void mouseMoved(MouseEvent e)
saySomething("\n Mouse moved", e);
public void mouseDragged(MouseEvent e)
saySomething("\n Mouse dragged", e);
void saySomething(String eventDescription, MouseEvent e)
infoJTextArea.append(eventDescription
+ " (" + e.getX() + "," + e.getY() + ")");
infoJTextArea.setCaretPosition(infoJTextArea.getDocument().getLength());
private void movingObject()
testJPanel.setVisible(false);
resultsJPanel.setVisible(true);
nameResultJTextField.setText(name);
ageResultsJTextField.setText(String.valueOf(age)+" years old");
double elapsedTime = (endTime - startTime)/1000.0;
timeLimit = (int)elapsedTime;
timeResultsJTextField.setText(timeDec.format(elapsedTime)+" seconds");
String mouse = infoJTextArea.getText();
String tick = timeDec.format(elapsedTime);
try
// create a file called welch.txt
final FileWriter outputFile = new FileWriter(name+".txt", true);
final BufferedWriter outputBuffer = new BufferedWriter(outputFile);
// converts data to a formatted string
final PrintWriter printstream = new PrintWriter(outputBuffer);
printstream.println("The person's name is: "+name);
printstream.println("There age is: "+age);
printstream.println("Time taken: "+tick+" seconds");
printstream.println("The mouse moved as follows: "+mouse);
//states what needs to be printed to the new file
printstream.close(); // closes teh printstream
catch(IOException eio)
//catchs the IO exception
if(timeLimit<5)
ratingJTextField.setText("Thierry Henry");
if(timeLimit>5)
ratingJTextField.setText("Average");
if(timeLimit>10)
ratingJTextField.setText("You gotta be fat or something");
if(timeLimit>20)
ratingJTextField.setText("See a doctor");
String rate=ratingJTextField.getText();
private void showData()
// String results = "";
// infoJTextArea.setText("Here are your results:\n"+results);
startJPanel.setVisible(false);
showJPanel.setVisible(true);
class ShapeMovingPanel extends JPanel implements ActionListener
RT host;
Timer timer;
Shape shape, xformed;
int x, y, dx, dy;
public ShapeMovingPanel(RT rt)
host = rt;
timer = new Timer(25, this);
x = 0;
y = 0;
dx = 2;
dy = 3;
setBackground(Color.pink);
addMouseListener(new ShapeTender());
public void actionPerformed(ActionEvent e)
int w = getWidth();
int h = getHeight();
if(w <= 0 || h <= 0)
return;
checkBoundries(w,h);
x += dx;
y += dy;
repaint();
// update RT.timerJTextField
host.updateTime();
private void checkBoundries(int w, int h)
Rectangle r = xformed.getBounds();
Insets insets = getInsets();
if(r.x + dx < insets.left || r.x + r.width + dx > w - insets.right)
dx *= -1;
if(r.y + dy < insets.top || r.y + r.height + dy > h - insets.bottom)
dy *= -1;
protected void paintComponent(Graphics g)
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
AffineTransform at = AffineTransform.getTranslateInstance(x, y);
g2.setPaint(Color.red);
xformed = at.createTransformedShape(shape);
g2.draw(xformed);
public void start()
if(!timer.isRunning())
timer.start();
public void setShape(Shape s)
shape = s;
Rectangle r = shape.getBounds();
x = r.x;
y = r.y;
repaint();
private class ShapeTender extends MouseAdapter
public void mousePressed(MouseEvent e)
if(xformed.contains(e.getPoint()))
timer.stop();
host.stop();
} -
My iphone storage is full and I do not have enough storage for upgrades or to take more photos/videos, download apps, etc. I do have my photos/videos ON for icloud sync but not sure if I can safely delete them from my iphone to make room. And if I can delete them from my phone how do I access them on my icloud? I logged in for the first time and do not see where to access photos/videos?
You can't just store photos on icloud. They can be included as part of a backup or when using photo stream to sync photos from one device to another, but 1) photo stream keeps photos for up to 30 days after which they are deleted from the servers, and 2) never rely on a backup to icloud as a way of storing photos. (When photos are deleted from the device, they are no longer on recent backups, and older backups get deleted in short time.)
When it comes to photos, users should sync them to a computer for archiving. Then they can delete the photos from the device, as the computer will have copies.
Photos in backups on icloud cannot be viewed on icloud.
Read this... import photos to your computer...
http://support.apple.com/kb/HT4083 -
Also why won't iTunes recognize my iPod Touch since updating to the latest version? I have a PC and can no longer sync my iPod bc it never shows up under devices.
See if these help
the iphone cannot be synced. you do not have enough access privileges for this operation
Re: access privileges ????
Re: Access Privileges
The iPhone "phonename" cannot be synced. You do not have enough access privileges for this operation -
I am trying to burn a dvd and it will not allow me to do this because it states I do not have enough space for encoding. how do i free up space and from where?
iDVD can only use your startup hard disk for the "scratch space" it needs for calculations during the encoding process. 25 GB is a good average requirement, but a large project (3 or 4 hours of content) might require more.
To free up space, you will have to move items to an external hard drive and/or delete items you no longer want.
Please note that iDVD can't use and external hard drive for this "scratch space". -
"The iPod cannot be synced. You do not have enough access privileges..."
Okay, so, as of today, my iPod refuses to sync. I keep getting this error message:
"The iPod <name> cannot be synced. You do not have enough access privileges for this operation"
If I hit 'OK' the sync appears to carry on, but checking my iPod the new song I have (which I got after the first time this happened, so that isn't the cause) isn't on there.
I have already looked around the forum and seen several similar threads, but I tried deleting my iPod photo cache (which seemed to work for everyone else) and that didn't work.
I also have my laptop set up to run a virus scan on a device every time it is plugged in and for some reason the scan on my iPod gets stuck at 83% every time.
Any ideas?
I don't know a lot about computers, but if there's anything else you need to know I'll tell you if I can.
Message was edited by: SafireixHi
I had the same error message. The problem turned out to be related to me syncing pictures.
When I elected to sync pictures, iTunes presented me with several folders and I chose to sync all of them. Later I realised that those folders actually belonged to another account on the same PC (an administrator account). Consequently I did not have access privileges to copy them onto the iPod.
When I deselected the picture folders that did not belong to my account, the problem went away. -
This is an information request from a complete coordinate systems newbie:
1. Does Oracle Spatial in 9.0.1 have an entry in MDSYS.CS_SRS that
corresponds to the coordinate system commonly known as "Earth Centered, Earth
Fixed" - where would I look (besides the table itself - I already tried that
with the 8.1.7 EE to no avail - it may be because I don't know enough about how
coordinate systems are referenced (the common nomenclature used) and just
didn't recognize it when I saw it.)
2. Are there any existing pl/sql snippets of code that can handle coordinate
conversions between ECEF-Lat/Long, geodetic degrees-decimal degrees? (If yes,
where should I go to look for them? By the way, please, please say yes, there
are many such packages just like there are for unit conversions (like binary to
hex).)
3. Where should I look to get information on a product called Map Viewer which
was mentioned in the latest edition of Oracle Magazine (May/June 2002, p.25 -
it was said to be a part of the 9iAS suite of products - I looked all over the
documentation but didn't find any mention of it.)
Thank you very much for your time and attention!
JulienThis is an information request from a complete coordinate systems newbie:
1. Does Oracle Spatial in 9.0.1 have an entry in MDSYS.CS_SRS that
corresponds to the coordinate system commonly known as "Earth Centered, Earth
Fixed" - where would I look (besides the table itself - I already tried that
with the 8.1.7 EE to no avail - it may be because I don't know enough about how
coordinate systems are referenced (the common nomenclature used) and just
didn't recognize it when I saw it.)
2. Are there any existing pl/sql snippets of code that can handle coordinate
conversions between ECEF-Lat/Long, geodetic degrees-decimal degrees? (If yes,
where should I go to look for them? By the way, please, please say yes, there
are many such packages just like there are for unit conversions (like binary to
hex).)You can get the proper params from the EPSG <http://www.epsg.org>,
I recall seeing some coord conversion samples in the tutorials/sample code - look in the OTN library
MArk -
Not getting enough performance out of Msi GT60 0NC
Hello there guys! Since I've got my laptop I have been getting the feeling that I am not getting enough power out of my toy. I dont know if its me who have too big expectations about this laptop or it really should be performing better?:( I have done hours of research regarding drivers, graphic setup and not at least overclocking which seems to raise the performance quite a bit but it easily gets unstable. I am using Msi's preinstalled drivers as it seems like they give the best performance so far. I have also installed the modded Firmware from https://forum-en.msi.com/index.php?topic=162629.0 which works better than the original one from Msi. But still, i hear a lot of people playing demanding games on ultra with fps around 50-60. In bf3 I get around 40-60 on High with shadow on medium and post processing off, anti-aliasing off. Turbo is on + overclock. The performance in Gw2 is even worse.
So here is my question: am I expecting too much from the laptop or can I do something to improve it and make it run like a charm? Another question would be if it is possible to change powervoltage to get a higher overclock?
I would very much like to hear from u guys how your msi gt60 is performing:)
Best regards, Mathias KanstrupQuote from: zipper.sippola on 18-September-13, 17:57:49
Same here, Gt70 0NE + 680M; overclocking GPU core causes clockdowns so gains are minimal. Overclocking memory is successful upto about 2500MHz but gains are small as the memory isn't the restricting factor in preformance - or the effect is just minuscule. So mostly 2 to 8 % in benchmarks, max.
With extreme air cooling and a modified VBios, it's possible to get up to around 15%......I know this first hand.
I just don't care to do it since there's little point in pushing the hardware that hard regularly. Yes, it's great for bragging rights, but it's not useful for long term use unfortunately.
Overclocking the memory in the GTX675M might help a bit more than in the 680M. I'm not sure, I haven't really followed up on the other cards. -
Numerator in Unit of Measure not big enough
Hi,
The numerator, field UMREZ, of the unit of measure has a maximun lenght of 5 digits ( maximum of 99999 ). But for certain conversion I need (in MM02-> aditional data->tab units of measure):
120000 EA = 1 ROL
How can I do this without entering something bigger than 99999?
I have thought in three alternatives:
1.- Modification of that data domain, so that it can be stored up to 999999.
2.- Use decimals in the denominator , so that I have something like 12000 EA = 0,1 ROL.
3.- With an auxiliar unit of measure EA2 ( created via CUNI, linked to EA): 10 EA2 = 1 EA :::::and then::::: 120000 EA2 = 1 ROL.
I havent been able to complete the 2nd and the 3rd. ANd I want to avoid the first...
Do you know if something like this can be done? if so, how????
I have found post UOM conversion not big enough but I could not find any usefull answer in there ...
Many thanks in advance.
AaronHi,
Yes, I had already read this note, thanks for the info anyways.
They describe exactly my case:
Example 3: Too large numerators and denominators
When 120000 CM3 = 0,2 tons (TO), you can no longer save numerator and denominator of conversion ratio 600000 CM3 = 1 TO as numerator and denominator may have maximally five digits.
Here, you must either select a larger volume unit or a smaller unit of weight: With DM3 the conversion ratio would be 600 DM3 = 1 TO, with KG the conversion ratio would be 600 CM3 = 1 KG.
Generally, the alternative units of measure and the base unit of measure should result in quantities that are in the same dimension since the conversion factors may not be larger than 99999/1 and not smaller than 1/99999.
But I can not change the Basic Unit of Measure, because the Material has already movements, and I dont know how to create another unit of measure (let say EA2) linked to EA with a the value 1 EA2 = 10 EA. In this case I could use EA2 in the material with the conversion 12000 EA2 = 1 ROLL.
Is this possible? How can I create this unit? in CUNI I can create a new UOM but I dont see how to link it with an existing one ( create a conversion between them ) .
Thanks!! -
Find driving distance between two points without using API by use of Lat & Long?
Using Google geocode API : http://maps.googleapis.com/maps/api/geocode/xml?address=thane&sensor=true
We performed get distance between search criteria entered by user and all related clubs by lat & long stored at db.
2. Two different points such as
(origin: Lat1 & Long1) and (destination: Lat2 & Long2)
We tried for to get distance between these two points,
(Lat2 & Long2) to (Lat1 & Long1)
But distance which we get by calculation is simple straight line distance
Origin Destination
(Lat1 & Long1) (Lat2 & Long2)
3. This is not driving distance as google shows in exact Km
4. For that Google provide another API (distancematrix API)
http://maps.googleapis.com/maps/api/distancematrix/xml?origins=Thane&sensor=true&destinations=khopat&mode=driving&language=en%20-%20EN
5. But there is limit for DistanceMatrix-Service without ClientID and client key
100 elements per query.
100 elements per 10 seconds.
2 500 elements per 24 hour period.
But as element request exceeds it shows : OVER_QUERY_LIMIT error
6. In case of Client ID and Client key
In Distance Matrix 100 000 elements per 24 hour period,a maximum of 625 elements per query and a maximum of 1 000 elements per 10 seconds.
As per this one there is option to get purchase these API but basic question is remain same for us if we are requesting single origin and multiple destination then how element calculation done by google?
But in document google says :
Elements
The information about each origin-destination pairing is returned in an element entry. An element contains the following fields:
Status: See Status Codes for a list of possible status codes.
Duration: The duration of this route, expressed in seconds (the value field) and as text. The textual representation is localized according to
the query's language parameter.
Distance: The total distance of this route, expressed in meters (value) and as text. The textual value uses the unit system specified with the
unit parameter of the original request, or the origin's region.Any information that you see in a google map webpage can be retrieved using the API. The best way of finding the tags on the webpage is to manually perform the query using an IE webpage. Then capture the source and save to a file so you
can use a text editor to look at results. I often on a webpage use the menu : View - Source and then copy the source to a text file.
jdweng
Maybe you are looking for
-
Gridcontrol 10.2.0.1 install error on 10.2.0.1 database
Error looking for DBMS_SHARED_POOL package when installing on 10.2.0.1 I was looking for a work around to get to GridControl 10.2.0.4 on 10.2.0.4 database Soo... now it looks like hours and hours to install to get to the latest version of grid and DB
-
Oracle 8i on Red Hat 6.0 with 32 MB of Ram
The installation notes mentions that 8i Enterprise Edition needs 128 MB of memory. Has anyone been able to install 8i Enterprise edition on a Linux machine with 32MB of Memory? null
-
Webcenter portlets and Apache - Portlet Consumer Error
Hello There, I'm trying to use Apache (OHS) with my Webcenter Space Application. So, I configure that OK like this tutorial: http://docs.oracle.com/cd/E21764_01/webcenter.1111/e12405/wcadm_app_http.htm# It works fine, but just the portlets stop to wo
-
Printing one image on a contact sheet with different gamma settings
Hi, I am currently using Aperture 1.1, and I would like to print out a contact sheet of one image (each with a different gamma setting) to my Epson R800 printer. Any idea on how to do this? Also, I seem to be somewhat limited in my printing options,
-
Legacy SD extraction help!!!Urgent
Hi SDNs ....We need to extract the legacy sales order data in to BI , we have a requirement where we have provided with two files one with sale ord line details and one with header details ....Header has customer ,Order Date and some other data which