|
Hi
Here i am posting my code that i have written
package com.evora.practice.swing;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;
public class PhotoViewer {
public static void main(String args[]){
new Main();
}
}
class ImageDraw extends Canvas{
/**
*
*/
private static final long serialVersionUID = 1L;
BufferedImage img;
double radian=0.0;
Dimension ds;
int iw;
int ih;
int x;
int y;
int adjX;
int adjY;
int adjW;
int adjH;
int mX;
int mY;
int orWidth;
int orHeight;
boolean rotate;
HashMap<integer, string=""> imgFiles;
String filename;
int curImgIndex;
ImageDraw(){
ds=getToolkit().getScreenSize(); //get the screen size
mX=(int)ds.getWidth()/4; //half of the screen width
mY=(int)ds.getHeight()/4; //half of the screen height
filename=null; //initialize filename variable
rotate=false; //initialize rotate variable
//initialize variables used to increase or decrease photo size
adjX=0;
adjY=1;
adjW=1;
adjH=1;
}
public void paint(Graphics g){
if(filename!=null){
if(rotate) //show rotated photo
rotateImage(g);
else
showImage(g); //show normal and zoom photo
}
}
//The rotateImage rotates the photo in clockwise or counterclockwise
//direction based on the radian value
public void rotateImage(Graphics g){
Graphics2D g2d=(Graphics2D)g;
g2d.translate(mX,mY); //move the original coordinate to point(mX,mY)
g2d.rotate(radian); //rotate the photo
g2d.translate(-iw/2,-ih/2); //move the coordinate back to point (iw/2,ih/2)
g2d.drawImage(img,0,0,iw,ih,null);//show the rotate photo
g2d.dispose(); //clean the g2d object
rotate=false; //reset the rotate to false after the photo rotates
}
//Increase the radian value by Math.PI/2
//so the photo is rotated in clockwise direction
public void rotateClockwise(){
radian+=Math.PI/2;
}
//Decrease the radian value by Math.PI/2
//so the photo is rotated in countclockwise direction
public void rotateCounterClockwise(){
radian-=Math.PI/2;
}
//The showImage method has code to display the photo when it is in
//normal view or zoom view
public void showImage(Graphics g){
Graphics2D g2d=(Graphics2D)g;
g2d.translate(x,y);
g2d.drawImage(img,0,0,iw,ih,null);
g2d.dispose();
}
public void readImage(String filename){
try{
//read the photo file so it is ready to display
img=ImageIO.read(new File(filename));
//get the original width and height of the photo
orWidth=img.getWidth();
orHeight=img.getHeight();
//Make sure the photo is not too large to fit the screen
if(mX<orwidth 2)
="" orwidth="mX*2;
" if(my<orheight="" orheight="mY*2;
" setimagebounds();
=""
="" }catch(ioexception="" e){};
="" }
="" determine="" the="" appropriate="" photo="" size="" and="" location="" to="" place="" photo
="" public="" void="" setimagebounds(){
="" try{
="" x="mX-orWidth/2+adjX;
" y="mY-orHeight/2+adjY;
" size
="" iw="orWidth+adjW;
" ih="orHeight+adjH;
" }catch(nullpointerexception="" npe){system.exit(-1);}
="" zoom="" in
="" decrease="" x-axis="" y-axis="" values="" at="" same="" time
="" increase="" width="" height
="" zoomin(){
="" adjx-="10;
" adjy-="10;
" adjw+="20;
" adjh+="20;
" out
="" zoomout(){
="" if(iw="">40 && ih>40){
adjX+=10;
adjY+=10;
adjW-=20;
adjH-=20;
setImageBounds();
}
}
//The storeImages method is invoked when the user select the Open... sub-menu
//item from the program interface
//It displays a file chooser dialog for multiple files selection
//The selected photos file are stored in a HashMap object imgList for
//later show
public void storeImages(){
imgFiles=new HashMap<integer, string="">();
JFileChooser chooser = new JFileChooser("C:\\Users\\Public\\Pictures\\Sample Pictures\\");
FileNameExtensionFilter filter = new FileNameExtensionFilter("Images", "jpg", "gif","png","bmp");
chooser.setFileFilter(filter);
chooser.setMultiSelectionEnabled(true);
int returnVal = chooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
File[] Files=chooser.getCurrentDirectory().listFiles();
for( int i=0;i<files.length;i++){
="" imgfiles.put(i,files[i].tostring());
="" }
="" the="" movefirst="" method="" has="" code="" to="" move="" first="" photo="" in="" imglist
="" public="" void="" movefirst(){
="" if(!imgfiles.isempty()){
="" curimgindex="0;" filename="imgFiles.get(curImgIndex);
" readimage(filename);
="" repaint();
="" movelast="" last="" movelast(){
="" moveprevious="" back="" moveprevious(){
="" if(!imgfiles.isempty()="" &&="" curimgindex!="0){
" curimgindex--;="" movenext="" forward="" movenext(){
="" curimgindex<imgfiles.size()-1){
="" curimgindex++;="" }
="" getimgfiles="" allows="" access="" list="" of="" photos--imglist
="" hashmap<integer,string=""> getImgFiles(){
return imgFiles;
}
}
//The Main class represents the interface of the PhotoView program
//On the interface, you see a File menu that has two sub-menu items: Open..., and Exit
//When the photo is displayed, the program will display a panel that contains
//all buttons you need to rotate, zoom, move, and play the slideshow of the photos
class Main extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
JButton btrotateClockwise;
JButton btrotateCounterClockwise;
JButton btZoomIn;
JButton btPrevious;
JButton btNext;
JButton btZoomOut;
JButton btSlideShow;
JPanel panel;
ImageDraw imgDraw;
boolean stop=true;
ImageSlide Slider;
Main(){
setTitle("Photo Viewer");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
setBackground(Color.CYAN);
JMenuBar mainmenu=new JMenuBar();
JMenu menu=new JMenu("File");
JMenuItem mopen=new JMenuItem("Open...");
mopen.setMnemonic(KeyEvent.VK_O);
mopen.addActionListener(this);
JMenuItem mexit=new JMenuItem("Exit");
mexit.setMnemonic(KeyEvent.VK_X);
mexit.addActionListener(this);
menu.add(mopen);
menu.add(mexit);
mainmenu.add(menu);
setJMenuBar(mainmenu);
btrotateClockwise=new JButton("ROTATE RIGHT");
btrotateClockwise.setBackground(Color.GREEN);
btrotateClockwise.addActionListener(this);
btrotateCounterClockwise=new JButton("ROTATE LEFT");
btrotateCounterClockwise.setBackground(Color.YELLOW);
btrotateCounterClockwise.addActionListener(this);
btZoomIn=new JButton("ZOOMIN");
btZoomIn.setBackground(Color.MAGENTA);
btZoomIn.addActionListener(this);
btZoomOut=new JButton("ZOOMOUT");
btZoomOut.setBackground(Color.PINK);
btZoomOut.addActionListener(this);
btPrevious=new JButton("BACK");
btPrevious.setBackground(Color.ORANGE);
btPrevious.addActionListener(this);
btNext=new JButton("NEXT");
btNext.setBackground(Color.GRAY);
btNext.addActionListener(this);
btSlideShow=new JButton("PLAYALL");
btSlideShow.setBackground(Color.WHITE);
btSlideShow.addActionListener(this);
panel=new JPanel();
panel.setLayout(new FlowLayout());
panel.add(btrotateClockwise);
panel.add(btrotateCounterClockwise);
panel.add(btZoomIn);
panel.add(btZoomOut);
panel.add(btNext);
panel.add(btPrevious);
panel.add(btSlideShow);
panel.setBackground(Color.BLACK);
add(panel, BorderLayout.SOUTH);
imgDraw=new ImageDraw();
add(imgDraw,BorderLayout.CENTER );
setVisible(true);
panel.setVisible(false);
}
//*handling buttons and sub-menu items clicks
public void actionPerformed(ActionEvent e){
if(e.getSource()==btrotateClockwise)
{
imgDraw.rotate=true;
imgDraw.rotateClockwise();
imgDraw.repaint();
}
else if(e.getSource()==btrotateCounterClockwise)
{
imgDraw.rotate=true;
imgDraw.rotateCounterClockwise();
imgDraw.repaint();
}
else if(e.getSource()==btZoomIn)
{
imgDraw.zoomIn();
imgDraw.repaint();
}
else if(e.getSource()==btZoomOut)
{
imgDraw.zoomOut();
imgDraw.repaint();
}
else if(e.getSource()==btPrevious)
{
imgDraw.movePrevious();
}
else if(e.getSource()==btNext)
{
imgDraw.moveNext();
}
else if(e.getSource()==btSlideShow)
{
if(stop){
startClick();
}
else{
stopClick();
}
}
else{
JMenuItem source = (JMenuItem)(e.getSource());
if(source.getText().compareTo("Open...")==0)
{
imgDraw.storeImages();
imgDraw.moveFirst();
panel.setVisible(true);
}
else if(source.getText().compareTo("Exit")==0)
System.exit(0);
}
}
//The stopClick method invoked when you click the Pause button
//*to stop the slideshow
public void stopClick(){
btSlideShow.setIcon(new ImageIcon("playall.png"));
stop=true;
Slider.stopShow();
}
//The startClick method invoked when you click the Play button
//to start the slideshow
public void startClick(){
btSlideShow.setIcon(new ImageIcon("pause.png"));
stop=false;
Slider=new ImageSlide();
Slider.start();
}
//The ImageSlide class handle the photo slideshow process
//When you click the Play button the run method of this class is invoked
//When you click the Pause button the stopShow method of this class is invoked
class ImageSlide extends Thread{
boolean started;
HashMap<integer,string> map;
ImageSlide(){
started=true;
map=imgDraw.getImgFiles();
}
public void run(){
int i;
try{
for(i=0;i
|
|
|
|
|
- Please edit the above and use the code button to put <pre> tags around your code so it is readable.
- Show us the line in the code where the error occurs.
|
|
|
|
|
|
java.lang.ClassNotFoundException: Could not load requested class : com.mysql.jdbc.driver .
This is coming while executing..I have also updated the buildpath by hibernate jars & mysql connector bin jar.still it is not working
|
|
|
|
|
you can post your query on javatpoint forum.
www.javatpoint.com/forum
|
|
|
|
|
Have you written mysql dialect in hibernate.cfg.xml??
|
|
|
|
|
Hello My Fren,please help me
I have serious problem here
whts the code or how to connect to database for input/save data and to show the data pleaseee
Thanks
|
|
|
|
|
|
Can any one explain why we can not create an object for Abstract classes, although we can create a constructor of an abstract class?
|
|
|
|
|
An abstract class is just that, it is abstract, it is not a 'real' thing. It is used as the basis for real classes so it may contain some implemented methods that will be common among all derived classes. But it will also contain some methods without implementation, as place holders for the derived ones. See http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html[^] for more details.
|
|
|
|
|
Because otherwise there would be no difference between abstract and non-abstract.
|
|
|
|
|
Though the concept of a constructor in an abstract class may look strange due to the fact that you cannot create an instance, it has still some meaning. The abstract class' constructor can do e.g. some initialization work and can be called from any derived class - i.e. when you create an instance of a derived class you indirectly call the constructor of the abstract base class too.
|
|
|
|
|
An Abstract class is a class that is declared as abstract. It may or may not include abstract methods.
We must declare Abstract class and Abstract methods with the key word abstract.
Abstract classes cannot be instantiated, means we can't create an object to Abstract class. We can create through Subclasses to Abstract classes.
Abstract methods in the sense without body..i.e there is no implementation right..
So in that case JVM does not know how much memory it has to allocate for that abstract method because abstract method does not have body implementation.
So JVM will not able to allocate memory for the abstract methods when the time of creating instance to Abstract class.
So JVM unable to create the instance to Abstract class. So that we can't create the object for the Abstract class.
If we use little sense, Abstract method is a non-static(not allows static) method, if we are allowed to create object for abstract method we can invoke that abstract method, which can not be executed. What is the use of it to invoking the unimplementation method.
Hence to restrict calling abstract method compiler will not allow instantiation abstract class.
Ok, Good , you may raise a question…In Abstract class not only Abstract methods we can create Concrete methods also which is having the implementation, so why, In that case also we can't create the instance for the Abstract class. Why because the abstract keyword simply indicates to JVM that the class cannot be instantiated.
Hence the designers of Java made the JVM that when it find abstract keyword for any class then JVM can't create the instance for that class.
Abstraction is just an Idea, there is no physically exists.
Above I written a statement Abstract method is a non-stattic method. Why Abstract method has not allows static modifier?
If we declare Abstract method as static , it is identified at the time of class loading and further can be invoked which can not be instantiated.
So ,Abstract method can not declare as static. If we declare it gives the compile time error: Illegal combination of modifier: abstract and static.
You know the Java class loader is also an abstract class...
Ok boss, I heard abstract class has constructor...Is it Right...
yes, absolutely, then why constructor ?
simple answer is for initializing the sub class...
There is a good reason behind this ,I will explore this in detail in my next post .
Hope its may help you...
give u r valuable comment to correct my knowledge, in case i'm wrong in this section...
if you have any doubts also write your doubt as a comment.
Thanks.
|
|
|
|
|
|
what is dangling pointer error
|
|
|
|
|
|
Dangling pointers in computer programming are pointers that do not point to a valid object of the appropriate type. These are special cases of memory safety violations.
Dangling pointers arise when an object is deleted or deallocated, without modifying the value of the pointer, so that the pointer still points to the memory location of the deallocated memory. As the system may reallocate the previously freed memory to another process, if the original program then dereferences the (now) dangling pointer, unpredictable behavior may result, as the memory may now contain completely different data.
|
|
|
|
|
I'm getting an incorrect output and getting some duplicates. i have traced through it several times both by myself and with my teacher but we can't find the mistake. Any help or guidance would be very much appreciated!!
This is my output:
BRUTE FORCE HULL
(45.49727, 99.40442)
(53.715485, 98.34267)
(45.49727, 99.40442)
(-90.16175, 96.802765)
(-97.703, 79.97963)
(-90.16175, 96.802765)
(91.41145, 88.82591)
(96.42737, 80.445724)
(91.41145, 88.82591)
(53.715485, 98.34267)
(96.42737, 80.445724)
(99.23712, 0.083602905)
(99.23712, 0.083602905)
(99.61636, -74.81982)
(82.97812, -94.3812)
(98.21695, -80.666794)
This is what the output should be"
BRUTE FORCE HULL
(45.49727, 99.40442)
(53.715485, 98.34267)
(91.41145, 88.82591)
(96.42737, 80.445724)
(99.23712, 0.083602905)
(99.61636, -74.81982)
(98.21695, -80.666794)
(82.97812, -94.3812)
(63.255356, -96.624664)
(-80.099915, -88.48059)
(-92.14374, -81.84515)
(-97.703, 79.97963)
(-90.16175, 96.802765)
public class HullTest {
ArrayList<Point> pointList = new ArrayList<Point>();
@SuppressWarnings("unused")
private int numPoints = -1;
public void readFile(String points) throws FileNotFoundException
{
Scanner sc = new Scanner(new File(points));
numPoints = sc.nextInt();
while (sc.hasNextFloat())
{
float x = sc.nextFloat();
float y = sc.nextFloat();
Point point = new Point(x,y);
addPoint(point);
}
sc.close();
}
public void addPoint(Point point)
{
pointList.add(point);
}
public ArrayList<Line> BruteForce()
{
ArrayList<Line> solutionPointsList = new ArrayList<Line>();
for (int i = 0; i < pointList.size()-1; i++)
{
for (int j = i+1; j < pointList.size(); j ++)
{
boolean isSolutionLine = true;
int initialSign = 0;
Point pointA = pointList.get(i);
Point pointB = pointList.get(j);
float A = pointB.getY() - pointA.getY();
float B = pointA.getX() - pointB.getX();
float C = pointA.getX()*pointB.getY() - pointA.getY()*pointB.getX();
for (int x = 0; x < pointList.size(); x++)
{
Point pointC = pointList.get(x);
float pointRegion = A*pointC.getX() + B*pointC.getY() - C;
if (initialSign != 0)
{
if (pointRegion > 0 && initialSign < 0)
{
isSolutionLine = false;
break;
} else if (pointRegion < 0 && initialSign > 0)
{
isSolutionLine = false;
break;
}
} else
{
if (pointRegion > 0)
initialSign = 1;
else if (pointRegion < 0)
initialSign = -1;
}
}
if(isSolutionLine)
{
Line temp = new Line(pointA,pointB);
solutionPointsList.add(temp);
}
}
}
return solutionPointsList;
}
public void PrintSolution ()
{
ArrayList<Line> list = BruteForce();
System.out.println("BRUTE FORCE HULL");
for (int i = 0; i < list.size(); i ++)
{
System.out.println( "(" + list.get(i).getPointA().getX() + ", " + list.get(i).getPointA().getY() + ")");
System.out.println( "(" + list.get(i).getPointB().getX() + ", " + list.get(i).getPointB().getY() + ")");
}
}
public static void main (String args[])
{
HullTest hull = new HullTest();
try {
hull.readFile(args[0]);
} catch (FileNotFoundException e) {
System.out.println("File not found!");
}
hull.PrintSolution();
}
}
I also have the input file if needed.
|
|
|
|
|
I dont know what you did exactly, as I dont know Java that well. In VB I have been using the following code:
Public Function ConvexHull2D(ByVal points As PointCollection) As PointCollection
Dim SortedList As New PointCollection
Dim Upper As New PointCollection
Dim Lower As New PointCollection
Dim tempPoints As New PointCollection
For Each p As Point In points
If Not tempPoints.Contains(p) Then tempPoints.Add(p)
Next
Dim res As New PointCollection
SortedList = SortPoints(tempPoints, True)
Upper = SortedList
For i As Integer = SortedList.Count - 1 To 0 Step -1
Lower.Add(SortedList(i))
Next
Dim j_set As Boolean = False
Dim j As Integer = 0
Dim r As Integer
Do While j < Upper.Count - 2
r = WhichSide(Upper(j + 1), Upper(j), Upper(j + 2))
If r = -1 Or r = 0 Then
Upper.RemoveAt(j + 1)
j = 0
j_set = True
End If
If Not j_set Then
j += 1
End If
j_set = False
Loop
j = 0
j_set = False
Do While j < Lower.Count - 2
r = WhichSide(Lower(j + 1), Lower(j), Lower(j + 2))
If r = -1 Or r = 0 Then
Lower.RemoveAt(j + 1)
j = 0
j_set = True
End If
If Not j_set Then
j += 1
End If
j_set = False
Loop
For Each p As Point In Upper
res.Add(p)
Next
For Each p As Point In Lower
If Not res.Contains(p) Then
res.Add(p)
End If
Next
Return res
End Function
Private Function WhichSide(ByVal PointToBeEvaluated As Point, ByVal StartPointOnLine As Point, ByVal EndPointOnLine As Point) As Integer
Dim ReturnvalueEquation As Double
ReturnvalueEquation = ((PointToBeEvaluated.Y - StartPointOnLine.Y) _
* (EndPointOnLine.X - StartPointOnLine.X)) - ((EndPointOnLine.Y - StartPointOnLine.Y) _
* (PointToBeEvaluated.X - StartPointOnLine.X))
If ReturnvalueEquation > 0 Then
Return -1
ElseIf ReturnvalueEquation = 0 Then
Return 0
Else
Return 1
End If
End Function
Public Function SortPoints(ByVal samplepoints As PointCollection, ByVal SortByXdirection As Boolean) As PointCollection
Dim copySamplePoints As Point() = New Point(samplepoints.Count - 1) {}
samplepoints.CopyTo(copySamplePoints, 0)
If SortByXdirection Then
Array.Sort(copySamplePoints, New PointSort(PointSort.Mode.X))
Else
Array.Sort(copySamplePoints, New PointSort(PointSort.Mode.Y))
End If
Dim result As New PointCollection
For Each p As Point In copySamplePoints
result.Add(p)
Next
Return result
End Function
Private Class PointSort
Implements IComparer
Public Enum Mode
X
Y
End Enum
Private currentMode As Mode = Mode.X
Public Sub New(ByVal mode As Mode)
currentMode = mode
End Sub
Private Function IComparer_Compare(ByVal a As Object, ByVal b As Object) As Integer Implements IComparer.Compare
Dim point1 As Point = CType(a, Point)
Dim point2 As Point = CType(b, Point)
If currentMode = Mode.X Then
If point1.X > point2.X Then
Return 1
ElseIf point1.X < point2.X Then
Return -1
Else
If point1.Y > point2.Y Then
Return 1
ElseIf point1.Y < point2.Y Then
Return -1
Else
Return 0
End If
End If
Else
If point1.Y > point2.Y Then
Return 1
ElseIf point1.Y < point2.Y Then
Return -1
Else
If point1.X > point2.X Then
Return 1
ElseIf point1.X < point2.X Then
Return -1
Else
Return 0
End If
End If
End If
End Function
End Class
Code is in VB, but should be easy to transform for you, and it should be n*log n fast, which is optimal although I'll bet there is a lot of possible improvments that could be made.
|
|
|
|
|
we have to compress the bitmap using byte aligned bitmap code can anyone please show some example?? Is there any package for this compression technique in java??
|
|
|
|
|
|
can any one contact me for help , i have a problem with the k-means algorithme implementation with java
have any one an idea to imlement this tabel or arrayliste , the centers and the distance are calculate previously, i would have a list of the class and the element belongds !!!! plz I would be grateful
this is my address : sahnoun.mabrouk@gmail.com
and this is my facebook account : <a href="https://www.facebook.com/sahnoun.mabrouk.52?ref=tn_tnmn"></a>
<pre> grain 27 grain 51 grain 52
27 0.00 0.65 0.68
51 0.65 0.00 0.03
52 0.68 0.03 0.00
33 0.16 0.49 0.51
45 0.49 0.16 0.19
22 0.14 0.78 0.81
28 0.03 0.62 0.65
44 0.46 0.19 0.22
40 0.35 0.30 0.32
38 0.30 0.35 0.38
20 0.19 0.84 0.80
57 0.81 0.16 0.14
</pre>
|
|
|
|
|
If you have a question then post it here with full details. No one is going to start a private consultancy session with you.
|
|
|
|
|
can open notepad.exe file
Launch the executable
function LaunchApp() {
if (!document.all) {
alert ("Available only with Internet Explorer1.");
return;
}
var ws = new ActiveXObject("WScript.Shell");
ws.Exec("C:\Windows\notepad.exe");
}
|
|
|
|
|
And what's your question? And whom do you expect to still use Internet Explorer 1 ?
|
|
|
|
|