Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
javab_20230928
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
javab_20230928
Commits
34fe7d18
Commit
34fe7d18
authored
Nov 08, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SoapKlient - dodatkowe przykłady z edycją i oknem
parent
7b2b4a21
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
346 additions
and
0 deletions
+346
-0
EdycjaDanych.java
PC34-SoapKlient/src/main/java/sklep/klient/EdycjaDanych.java
+67
-0
OdczytajJedenProdukt.java
...ient/src/main/java/sklep/klient/OdczytajJedenProdukt.java
+37
-0
OknoSoap.java
PC34-SoapKlient/src/main/java/sklep/klient/OknoSoap.java
+242
-0
No files found.
PC34-SoapKlient/src/main/java/sklep/klient/EdycjaDanych.java
0 → 100644
View file @
34fe7d18
package
sklep
.
klient
;
import
java.math.BigDecimal
;
import
java.util.Locale
;
import
java.util.Scanner
;
import
sklep.generated.DBException_Exception
;
import
sklep.generated.Product
;
import
sklep.generated.RecordNotFound_Exception
;
import
sklep.generated.Sklep
;
import
sklep.generated.SklepService
;
public
class
EdycjaDanych
{
public
static
void
main
(
String
[]
args
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
scanner
.
useLocale
(
Locale
.
US
);
SklepService
service
=
new
SklepService
();
Sklep
sklep
=
service
.
getSklepPort
();
while
(
true
)
{
System
.
out
.
println
(
"Podaj ID produktu lub 0, aby zakończyć"
);
int
id
=
scanner
.
nextInt
();
if
(
id
==
0
)
break
;
try
{
Product
product
=
sklep
.
readOne
(
id
);
System
.
out
.
println
(
"Znaleziono produkt: "
+
product
.
getProductName
()
+
" za cenę "
+
product
.
getPrice
());
if
(
product
.
getDescription
()
!=
null
)
{
System
.
out
.
println
(
"Opis: "
+
product
.
getDescription
());
}
boolean
czyCosSieZmienilo
=
false
;
System
.
out
.
println
(
"Podaj zmianę ceny: "
);
BigDecimal
zmiana
=
scanner
.
nextBigDecimal
();
if
(
zmiana
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
product
.
setPrice
(
product
.
getPrice
().
add
(
zmiana
));
czyCosSieZmienilo
=
true
;
}
scanner
.
nextLine
();
System
.
out
.
println
(
"Podaj nową nazwę (enter, aby nie zmieniać): "
);
String
nazwa
=
scanner
.
nextLine
();
if
(!
nazwa
.
isEmpty
())
{
product
.
setProductName
(
nazwa
);
czyCosSieZmienilo
=
true
;
}
System
.
out
.
println
(
"Podaj nowy opis (enter, aby nie zmieniać): "
);
String
opis
=
scanner
.
nextLine
();
if
(!
opis
.
isEmpty
())
{
product
.
setDescription
(
opis
);
czyCosSieZmienilo
=
true
;
}
if
(
czyCosSieZmienilo
)
{
sklep
.
saveProduct
(
product
);
System
.
out
.
println
(
"Zapisano zmiany."
);
}
System
.
out
.
println
();
}
catch
(
RecordNotFound_Exception
e
)
{
System
.
out
.
println
(
"Nie ma takiego rekordu"
);
}
catch
(
DBException_Exception
e
)
{
System
.
out
.
println
(
"Inny błąd: "
+
e
);
e
.
printStackTrace
();
}
}
}
}
PC34-SoapKlient/src/main/java/sklep/klient/OdczytajJedenProdukt.java
0 → 100644
View file @
34fe7d18
package
sklep
.
klient
;
import
java.util.Scanner
;
import
sklep.generated.DBException_Exception
;
import
sklep.generated.Product
;
import
sklep.generated.RecordNotFound_Exception
;
import
sklep.generated.Sklep
;
import
sklep.generated.SklepService
;
public
class
OdczytajJedenProdukt
{
public
static
void
main
(
String
[]
args
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
SklepService
service
=
new
SklepService
();
Sklep
sklep
=
service
.
getSklepPort
();
while
(
true
)
{
System
.
out
.
println
(
"Podaj ID produktu lub 0, aby zakończyć"
);
int
id
=
scanner
.
nextInt
();
if
(
id
==
0
)
break
;
try
{
Product
product
=
sklep
.
readOne
(
id
);
System
.
out
.
println
(
"Znaleziono produkt: "
+
product
.
getProductName
()
+
" za cenę "
+
product
.
getPrice
());
if
(
product
.
getDescription
()
!=
null
)
{
System
.
out
.
println
(
"Opis: "
+
product
.
getDescription
());
}
}
catch
(
RecordNotFound_Exception
e
)
{
System
.
out
.
println
(
"Nie ma takiego rekordu"
);
}
catch
(
DBException_Exception
e
)
{
System
.
out
.
println
(
"Inny błąd: "
+
e
);
e
.
printStackTrace
();
}
}
}
}
PC34-SoapKlient/src/main/java/sklep/klient/OknoSoap.java
0 → 100644
View file @
34fe7d18
package
sklep
.
klient
;
import
java.awt.EventQueue
;
import
java.awt.Font
;
import
java.awt.event.ActionEvent
;
import
java.awt.event.ActionListener
;
import
javax.swing.GroupLayout
;
import
javax.swing.GroupLayout.Alignment
;
import
javax.swing.ImageIcon
;
import
javax.swing.JButton
;
import
javax.swing.JFrame
;
import
javax.swing.JLabel
;
import
javax.swing.JPanel
;
import
javax.swing.JSpinner
;
import
javax.swing.JTextField
;
import
javax.swing.LayoutStyle.ComponentPlacement
;
import
javax.swing.SwingWorker
;
import
javax.swing.event.ChangeEvent
;
import
javax.swing.event.ChangeListener
;
import
sklep.generated.*
;
public
class
OknoSoap
{
private
Sklep
proxy
;
private
JFrame
frame
;
private
JTextField
txtTytul
;
private
JTextField
txtMarka
;
private
JTextField
txtCena
;
private
JSpinner
spinner
;
private
JLabel
lblFoto
;
private
Product
biezacyProdukt
;
private
ImageIcon
ikonaZeZdjeciem
;
/**
* Launch the application.
*/
public
static
void
main
(
String
[]
args
)
{
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
try
{
OknoSoap
window
=
new
OknoSoap
();
window
.
frame
.
setVisible
(
true
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
});
}
/**
* Create the application.
*/
public
OknoSoap
()
{
SklepService
serwis
=
new
SklepService
();
proxy
=
serwis
.
getSklepPort
();
initialize
();
}
/**
* Initialize the contents of the frame.
*/
private
void
initialize
()
{
frame
=
new
JFrame
();
frame
.
setBounds
(
100
,
100
,
841
,
801
);
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
spinner
=
new
JSpinner
();
spinner
.
addChangeListener
(
new
ChangeListener
()
{
public
void
stateChanged
(
ChangeEvent
e
)
{
wyswietl
();
}
});
spinner
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
22
));
JLabel
lblPodajIdOgoszenia
=
new
JLabel
(
"Podaj ID ogłoszenia"
);
lblPodajIdOgoszenia
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
20
));
JButton
btnWywietl
=
new
JButton
(
"Wyświetl"
);
btnWywietl
.
addActionListener
(
new
ActionListener
()
{
public
void
actionPerformed
(
ActionEvent
ev
)
{
wyswietl
();
}
});
btnWywietl
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
20
));
JPanel
panel
=
new
JPanel
();
lblFoto
=
new
JLabel
(
"FOTO"
);
GroupLayout
groupLayout
=
new
GroupLayout
(
frame
.
getContentPane
());
groupLayout
.
setHorizontalGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
TRAILING
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addComponent
(
lblFoto
,
GroupLayout
.
DEFAULT_SIZE
,
817
,
Short
.
MAX_VALUE
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addComponent
(
lblPodajIdOgoszenia
)
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)
.
addComponent
(
spinner
,
GroupLayout
.
PREFERRED_SIZE
,
72
,
GroupLayout
.
PREFERRED_SIZE
)
.
addPreferredGap
(
ComponentPlacement
.
RELATED
,
437
,
Short
.
MAX_VALUE
)
.
addComponent
(
btnWywietl
))
.
addComponent
(
panel
,
GroupLayout
.
DEFAULT_SIZE
,
817
,
Short
.
MAX_VALUE
))
.
addContainerGap
())
);
groupLayout
.
setVerticalGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
TRAILING
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
lblPodajIdOgoszenia
)
.
addComponent
(
spinner
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
))
.
addGap
(
20
))
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addComponent
(
btnWywietl
)
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)))
.
addComponent
(
panel
,
GroupLayout
.
PREFERRED_SIZE
,
155
,
GroupLayout
.
PREFERRED_SIZE
)
.
addGap
(
18
)
.
addComponent
(
lblFoto
,
GroupLayout
.
DEFAULT_SIZE
,
523
,
Short
.
MAX_VALUE
)
.
addContainerGap
())
);
JLabel
lblTytu
=
new
JLabel
(
"Nazwa"
);
lblTytu
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
18
));
txtTytul
=
new
JTextField
();
txtTytul
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
16
));
txtTytul
.
setColumns
(
10
);
JLabel
lblMarka
=
new
JLabel
(
"Opis"
);
lblMarka
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
18
));
txtMarka
=
new
JTextField
();
txtMarka
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
16
));
txtMarka
.
setColumns
(
10
);
JLabel
lblCena
=
new
JLabel
(
"Cena"
);
lblCena
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
18
));
txtCena
=
new
JTextField
();
txtCena
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
16
));
txtCena
.
setColumns
(
10
);
GroupLayout
gl_panel
=
new
GroupLayout
(
panel
);
gl_panel
.
setHorizontalGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
gl_panel
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
gl_panel
.
createSequentialGroup
()
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
TRAILING
,
false
)
.
addComponent
(
lblMarka
,
Alignment
.
LEADING
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
Short
.
MAX_VALUE
)
.
addComponent
(
lblTytu
,
Alignment
.
LEADING
,
GroupLayout
.
DEFAULT_SIZE
,
152
,
Short
.
MAX_VALUE
))
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addComponent
(
txtMarka
,
GroupLayout
.
DEFAULT_SIZE
,
623
,
Short
.
MAX_VALUE
)
.
addComponent
(
txtTytul
,
GroupLayout
.
DEFAULT_SIZE
,
623
,
Short
.
MAX_VALUE
)))
.
addGroup
(
Alignment
.
TRAILING
,
gl_panel
.
createSequentialGroup
()
.
addComponent
(
lblCena
)
.
addGap
(
128
)
.
addComponent
(
txtCena
,
GroupLayout
.
DEFAULT_SIZE
,
623
,
Short
.
MAX_VALUE
)))
.
addContainerGap
())
);
gl_panel
.
setVerticalGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
gl_panel
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
lblTytu
)
.
addComponent
(
txtTytul
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
))
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
lblMarka
)
.
addComponent
(
txtMarka
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
))
.
addGap
(
18
)
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
txtCena
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
)
.
addComponent
(
lblCena
))
.
addContainerGap
(
44
,
Short
.
MAX_VALUE
))
);
panel
.
setLayout
(
gl_panel
);
frame
.
getContentPane
().
setLayout
(
groupLayout
);
}
// jest wywoływane przez Swinga po kliknięciu guzika itp.
// ta metoda jest wykonywana w wątku EDT
protected
void
wyswietl
()
{
int
idOgloszenia
=
(
Integer
)
spinner
.
getValue
();
SwingWorker
<
Void
,
Void
>
worker
=
new
SwingWorker
<
Void
,
Void
>()
{
@Override
protected
Void
doInBackground
()
throws
Exception
{
// to wykona się w oddzielnym wątku,
// nie zablokuj okna, ale tutaj nie powinniśmy korzystać z elementów okna
pobierzDane
(
idOgloszenia
);
return
null
;
}
@Override
protected
void
done
()
{
// tu powinniśmy wpisać polecenia dotyczące okna, które mają być wykonane przez EDT po zakończeniu operacji
uaktualnijWidok
();
}
};
worker
.
execute
();
}
private
void
pobierzDane
(
int
id
)
{
// ma być wykonane w tle
try
{
ikonaZeZdjeciem
=
null
;
biezacyProdukt
=
null
;
biezacyProdukt
=
proxy
.
readOne
(
id
);
try
{
byte
[]
bajtyZeZdjeciem
=
proxy
.
getPhoto
(
id
);
if
(
bajtyZeZdjeciem
!=
null
)
{
ikonaZeZdjeciem
=
new
ImageIcon
(
bajtyZeZdjeciem
);
}
}
catch
(
RecordNotFound_Exception
e
)
{
// zdjecie zostaje nullem
}
}
catch
(
DBException_Exception
e
)
{
e
.
printStackTrace
();
}
catch
(
RecordNotFound_Exception
e
)
{
}
}
private
void
uaktualnijWidok
()
{
// ma być wykonane przez okno (czyli wątek EDT)
if
(
biezacyProdukt
!=
null
)
{
txtTytul
.
setText
(
biezacyProdukt
.
getProductName
());
txtMarka
.
setText
(
biezacyProdukt
.
getDescription
());
txtCena
.
setText
(
String
.
valueOf
(
biezacyProdukt
.
getPrice
()));
}
else
{
txtTytul
.
setText
(
""
);
txtMarka
.
setText
(
""
);
txtCena
.
setText
(
""
);
}
lblFoto
.
setIcon
(
ikonaZeZdjeciem
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment