close

Вход

Забыли?

вход по аккаунту

?

Zadanie 1 chast V1-V34

код для вставкиСкачать
??????? ? 1
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?????? ????????? ???????????? ?????????? ????????? ???????: ?? ???? ??????? ??????? ?? ??????????, ?????????? ??????????? ? ??? ?????????? (????? ????????????? ????? ?????? layoutContainer() ?? ?????????? LayoutManager). ? ?????? layoutContainer() ? ?????????? ???????? ?????? ?? ???????????? ??????????? ? ??????????. ???????? ????????????, ???????? ?? ???????? ????????? ??????? ? ???????? ???????????
2 ?? ???????? ????????? ????????? (? ?????, ???????? ???????) ?????? ?????? revalidate() ? ????? 5. ??? ???????, ???????? ???????????? ?? ???????? ???????, ?? ???? ?? ????? ????????? ? ??????? ????????, ????? ????? ????? ? ?????????? ????? 5.
??? ??? ?????? ?????????? Swing, ???? ??? ????????? ??? ????????? ?????????, ????????? ????? revalidate(), ???????????? ? ??????? ?????? ?????????? JComponent2 .�
???????? ???????????? ?????? ??????????? ??????????? ? ????????? ?????????? ? ????????? ???????, ????????? ?? ?????????????? ? ??? ?????????, ? ??????? ?? ????????? ??????, ??? ???? ?? ?????? ????????? ???????????? ???????? ???????????.
� ???????????????? ??????. ????? ?????? ???????? ???????? ??????? ??????????. ?? ????????? ??? ??????? ??????????? ??????????????? UI-??????????????? ???????? ???????? ???? ? ????????? (lookandfeel), ?? ?? ?????? ???????? ??. ???????????????? ?????? ????? ???????? ? ??????? ?????? SetPrefferedSize().
� ??????????? ??????. ???? ???????? ??????????, ?? ????? ??? ???????? ???????????? ????? ????????? ?????? ??????????. ????? ?????????? ???????????? ??????? ???? ??????????? ????????? ?????? ?? ?????? ????????? ???? ??????. ??????????? ?????? ????? ????? ????????, ??? ????? ???????????? ????? setMinimumSize().
� ???????????? ??????. ???? ???????? ??????? ? ???, ????????? ????? ??????????? ????????? ??? ?????????? ???????? ??????????. ????????, ???????????? ?????? ?????????? ???? JTextField ?? ?????????, ??? ?? ?????? ?????? (???? ????? ??? ?????? ????????? ???? ???????????????? ??????). ??? ?????????? ?? ?????? ????????? ? ??????? ?????? setMaximumSize(), ???????????????? ???????????? ??????. ??????? ????? ?????????? ???????????? ?????????? ???????????? ??????, ??????? ? ???????? ? ???????????????? ? ??????????? ?????????.
� ???????????? ?? ???? ?? Y. ??? ????????? ????? ?????? ????????? BoxLayout, ?????? ??? ???? ??? ?????? ????????? ????. ??????? ?? ?? ??????????, ????? ?????? ?? ???????? ????? ?????????.
� ??????? ??????????. ??? ????????? ??????????, ??????? ????????? ???????? ????? getlnsets(), ?????????? ??????? ???????? ?? ?????? ??????????. ?????? ????????? ???????????? ?????????? ?? ?????????. ? Swing ? ??? ???????????, ? ??? ??????????? ??????????? ????? Border, ??????? ????????? ????? ? ???????????? ??????????, ????????? ???????? ???, ??? ?????? ?????? ??????????? Swing ????? ??????? ? ?????????????.
� ??????? ?????. ???????????? ??????, ???????????? ????????? ????, ?? ???????? ????????????? ?????? ??????. ??? ??????????? ?????????? ??? ????????, ??? ?????????? ?????, ?? ??????? ???????????? ?????????? ????? ???????????, ? ???????, ??????? ????? ?????? ? ????????? ???? ? ??????? ????? ?????? ??????? ?? ??????. ? ????????? ?????? ???????? ???????????? ?? ?????, ??? ??????????? ?????????? ? ?????? ????????? ?? ?????? ?? ??????? ? ?????? ??????? ??? ?? ??????, ??? ????? ???????? ? ???????????????????? ??????????? ? ??????????? ???????????. ??? ??????????? ??????? ????? ???????????? ????? getBaseline(), ??????? ? ????? ??????????? ????? ??????????????.
� ? ??????????, ?????? ??????????? ?????????? ?? ???????????? ???????? ? ??????????, ??????? ??? ??????? ?? ??? ????? setBounds(), ??????????? ??????? (? ????????, ? ??????? ????????? ??????????) ?????????????, ??????? ????? ???????? ?????????. ??? ??????? ?????????? ???????????? ? ?????? ?????????? ??? ???????? ????? ?????? ? ??????? ??????????, ?????? ??????? ????????? ???????????? ??????????? ??????????? ?????? ????????. ????????? ?????? ???????? ???? ?????? ???????? ???????????? ???????????, ?? ????? ??????????? ?????????? ??????????? ? ??????????? ????? ???? ? 5 ???????? ? ???????????? ??? ???? ??????????? ???????????????? ??????. ??? ??? ? ??? ?????????:
� // VerticalLayout.java
� // ??????? ???????? ????????????, ??????????? // ?????????? ? ???????????? ??? ? ????????? import java.awt.*; import javax.swing.*;
� public class VerticalLayout implements LayoutManager {
� // ?????? ????? ???????????? public int GAP = 5;
� // ?????? ??????????? ?????????? ? ?????????? public void layoutContainer(Container ?) {
� Component comps[] = ?.getComponents();
� int currentY = GAP;
� for (Component comp : comps) {
� // ????????????????????????????????Dimension pref = comp. getPreferredSize (') ;
� // ????????????????????????????????????comp.setBounds{GAP, currentY, pref.width, pref.height) ;
� // ???????????????????????????currentY += GAP; currentY += pref.height;
� }
� }
� // ??? ??? ?????? ??? ?? ??????????? public void addLayoutComponent(
� String name, Component comp) {
� }
� public void removeLayoutComponent(
� Component comp) (
� }
� // ??????????????????????????????public Dimension minimumLayoutSize(Container c) { return calculateBestSize(c);
� }
� // ???????????????????????????????????public Dimension preferredLayoutSize(Container ?) { return calculateBestSize(?);
� }
� private Dimension size = new Dimension();
� // ????????????????????????????????????1private Dimension calculateBestSize(Container c) {
� // ??????????????????????????????Component!] comps = ?.getComponents(); int maxWidth = 0; for (Component comp : comps) { int width = comp.getWidth();
� // ????? ?????????? ? ???????????? ?????? if (width > maxWidth) maxWidth = width;
� }
� // ????? ?????????? ? ?????? ?????? ??????? size.width = maxWidth + GAP;
� // ????????? ?????? ?????????? int height = 0;
� for (Component comp : comps) { height += GAP; height += comp.getHeight();
� }
� size.height = height; return size;
� }
� // ?????????????????????????????public static void main(String[] args) {
� SwingUtilities.invokeLater( new Runnable() {
� public void run() {
� JFrame frame = new JFrame("VerticalLayout"); frame.setDefaultCloseOperation(
� JFrame.EXIT_ON_CLOSE);
� // ????????????????????????????????????????JPanel contents = new JPanel( new VerticalLayout());
� // ??????? ???? ?????? ? ????????? ????
� contents.add(new JButton("????")); contents.add(new JButton("???")); contents.add(new JTextField(30)); frame.add(contents); frame.setvisible(true); frame.pack(); } });
� }
� }
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MS Equation
� 1. ???????? ??????? ?????? ?????? ?????
?? ?????? ?????? ????????????? ??????? ????? ??? ????????? ? ???????? ???????????? ??????????? ? ???????? ???????????? ? ?????? ??????, ??? ???????????? ??????? ?????????? ? ???? ????????? ????????????? ???????. ??? ??????? ????????? ????? ????? ?????? ??????????? ? ? ????????? ?????.
? ??????????? ?????? ???????? ??????????? ??? ??????? ????????? ?????? ???????? ???? ? ????????, ??? ???????? ?????? ??????????? ???????????. ?? ??????? ???? ????? ???? ?????????? ?????? ?????????? ???????????, ??? ?????, ? ?????????, ????? ?????????? ???????? ? ??????? ??????????? ???????? ??????? ??????? ????????? ? ???????? ????????????. ? ????????? ????? ??? ?????? ?????? ? ???????????- ? ???????????-??????????? (????? ???????? ?????????) ???????? ???????? ?????????????????. ??? ??????? ????? ????????? ???????? ?? ???????? ???????????? ???????????? ???????? ??????? ? ????????? ???????? ??????? ?????. ? ?????? ????????????? ????? ????????? ??????? (????????, ????????????????) ??? ????????????? ????????????? ??????? ?? ???? ???????.
??????? ? 2
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??? ?????? ???????? ????????????, ?????????? ???????? VerticalLayout, ??? ? ???????? ?????? ????????? ????????????, ????????? ????????? LayoutManager. ?????? ?????, ??????? ??? ???????? ???????????, ???????????? ???????? ? ????? ?????? - ?????? ? ?????? layoutContainer() ???????? ???????????? ?????? ??????????? ??? ??????????, ???????????? ? ??????????, ?? ????? ??????. ????????? ?????? ????????? ???????????? ?????????????: ?? ????????? ?????????? ? ???????????? ???, ??????? ?? ??????????? ? 5 ???????? (?????????? ???????? ? ?????????? GAP), ??? ?????????? ????? ???????????????? ??????. ????? ??????????? ????? ?????????, ???????????? ????????? ????????: ?? ??????????? ?????? ???????????? ? ?????????? ??????????? (???????? ???? ?????? ????????? ????? ?????????? getComponentsO), ???????? ??? ??????? ?? ??????????? ???????????????? ?????? ? ??????? (??????? setBounds()) ??????? ?????????? ?? ??????, ????????? ?????????? ??????? ?????????? ?? ??? Y, ?????????? ?? ?? ?????? ?????????? ?????????? ? ?????? "?????????????" ?????????? ?? ?????????? GAP. ??? ??? ?????????? ????? ????????????? ???? ??? ??????, ?????????? ?????????4. ???????? ????????, ??? ?? ???????? ?????????? ? ?? ????? ??????? ?????????? ?? ?? ?? ????? ??????????.
????? ??????? ??? ??????, ???????? ??? ?????????? ? ???????? ??????????? ?? ?????? ??????????? ????????? ????????????. ????????, ??? ????? addLayoutComponent() ????????? ????????????? ? ??????????? ??????, ??????? ????? ???? ???????????? ?????????? ???????????? ??? ???????????? ???????????? ????, ??? ?????? ???????????- ?????? ?????? ?????? ?????? ?????????. ??? ??????? ???????? ???????????? ?? ???????????? ???????? ????????????, ?????? ?????????? ??? ?????????? ????????- j ?? ? ???????????? ???, ?????? ????? ??????? ????????????, ? ???????, ???????? pa:- j ????????? BorderLayout, ??????? ?? ?????? ??????, ?????????? ??? ?????? ??? ???.?? 1 ??????? ?????????? ?????? ?????????? ? ??????????.
?????????? ???????? ??? ??????, ?????????? ???????????????? (preferredLayotr- | Size()) ? ??????????? (minimumLayoutSize()) ??????? ?????????? ??? ???????????"?* I ? ??? ??????? ????????? ????????????. ????? ? ?????????? ???????? ???????? pi: ??????????, ?????? ?? ????????????? ? ???, ????? ?????? ???? ???????????????? ?? I ??????????? ?????? ??????????, ? ??? ?????? ?????????: ???????? ???????????? par- ????????? ????? ?? ??????, ??? ??? ?? ?????? ?????, ??????? ????? ????? ? ?????????? 1 ????????? ??? ?????????? ??????. ??? ?????? ???????? ????????? ???????????? ? ????????? ? ???????????????? ??????? ?????????? ?????????, ?? ????????? ????? 1 calculateBestSize(). ????????? ??????????? ?????? ?????????? ????????. ??? ?????? ?? ? ????? ???? ????????? ? ????? ??????? ??????, ?????????? ? ????????? ????? pa"- 1 ??? ??????? ?? ????? ??????? ?????????? ?? ???? GAP ? ???????? ??????????????? ??????????. ??? ?????? ?????????? ???? ???????: ?????????? ?????????? ?????? ????
' ???????? ????????, ??? ??? ?????? ???????? ???????????? ?? ????????? ?? ???????? ????? ?? ????????? ?? ??????, ????? ??????????? ???????. ????????? ?????? ????? ????????^? ? ??????????, ?? ???? ?????????, ? ????? ??? ??????? ????????? ?? ????????. ??? ???????? ??? ???? ?? ???????? ??? ????????.
??????????? ? ?????????? ???????????, ? ????? ?????????? ? ??? ?????? ??????? ????? ?? ?? ? ????????????. ?????????? ????? ? ???????? ??????????? ??????? ??????????.
????? ?????????? ???? ??????? ?????????? LayoutManager?? ?????? ????????? ??-??? ???????? ???????????? ? ??????. ??? ????? ? ?????? mainQ?? ??????? ????????? : ??? ? ?????? JFrame? ????????? ? ??? ???? ?????? JPanel, ???????????? ??? ??? ??? ????? ???????? ????????????. ? ?????? ??????????? ???? ?????? ? ???????? ??????? "???????? ????, ????? ???? ???? ????????? ?? ?????. ????? ??????? ???????????? ??????? ????? ?????????? ??????????? ????????, ?? ???????? ????? ????(), ??????? ??????? ???? ???????????????? ??????. ???????? ????????? ? ????????, ?? ??????? : ??????, ??? ?????????? ????????????? ??????????? ???? ??? ??????, ? ????? ?? ??? ???????? ?????? ??????????? ????????.
?????? ???????? ????????? ?????? ????????? ???????????? ? ?????? ?????? ??- ?????? ????? ???????? ???????????? ???????????, ????? ????? ?????????? ? ????? ????????, - ?????? ??????, ?????? ??? ?????????????? ?????? ??? ????????????? ??????????? ? ??????????? ?????? ??????? ????? ?????????. ?????? ?????????? ?????????? ??????????? ?????????? ???????????? ?? ? ???? ?????? ?? ?????. ????????? ????????, ??? ??? ???????? ??????? ???? ? ??????, ??? ???????, ? ?????? ? ???????????? ???, ????????????? ?????????? ?? ??????????? ??????????, ?????? ????????. ??????? ????? ???????????? ?????? ????????? ??????????? ????????? ????????????, ??????????? ? ??????? ????????? ??????? ???????? ????? ????????????. ???? ?? ?????? ? ????????.
??????????? ????????? ????????????
? ?????? ?????????? JDK 1.7 ??????? ???????? ????? ??????? ??????????? ?????????? ????????????. ??????? ?? ????? ????????? ?? ????????? ?????: ????? ??????? (? ??? ????????? FlowLayout, GridLayout? BorderLayout), ????????????? (? ????? ??? ?????? ???????? ????? ??????? ???????????? BoxLayout, GroupLayout? GridBagLayout) ? ?????????????????? CardLayout? SpringLayout).????????????? ????????? ?? ?????????? ? ????????? ??????? ? ???????? ????????, ? ???? ?????? "?????????" ?? ???? ????????? ??????????.
???????? ???????????? BorderLayout
???????? BorderLayout?????????? ???????????? ??? ??????? ? ?????????? ????, ?????? ??? ????????? ?????? ? ?????? ??????????? ???????? ????? ???????????? ???????? ?????? ????: ?????? ????????????, ?????? ????????? ? ???????? ??????????. ??? ????? ???? ??????????? ?? ?? ?????? ???????, ??? ?????? (?????? ??? ????????), ? ??? ?????????? ????? ??????????? ???????????, ??????????? ???????? ??????? ?????????? (????????, ? ????????? ??? ????? ????????? ????, ? ???????????? ?????????? - ??????? ????).
???? ???????, ??? ???????? ???? ???????? ??????? ?? ???, ??? ??? ????????? - ????? ???????? ? ??? ??????? ?????????, ? ?????? add() ?????????? ??????? ??????????????
????????, ??????? ??????????, ? ????? ??????? ?????????? ??????? ????????? ?????????. ???? ??????????? ?????????? ???????? ????? ?????????.
� ???????? BorderLayout.NORTH??? ?????? "North" - ????????? ????????????? ????? ??????? (????????) ??????? ???? ? ????????????? ?? ??? ??? ??????. ?????? ??? ??????????? ?????? ????????????.
� ???????? BorderLayout.SOUTH??? ?????? "South" - ????????? ????????????? ????? ?????? (?????) ??????? ? ????????????? ?? ??? ?????? ????. ????? ????????? ???????? ??? ?????? ?????????.
� ???????? BorderL.ayout.WEST??? ?????? "West" - ????????? ????????????? ????? ????? (????????) ??????? ???? ? ????????????? ?? ??? ??? ??????, ?????? ??? ???? ??????????? ??????? ???????? ? ????? ??????????? (??? ????? ?????????).
� ???????? BorderLayout.EAST??? ?????? "East" - ????????? ????????????? ????? ?????? (?????????) ??????? ????. ? ????????? ??? ???????????? ?????????? ????????? ??????????.
� ???????? BorderLayout.CENTER??? ?????? "Center" - ????????? ?????????? ? ????? ????, ??????? ??????????? ????????? ????????????/
?????
?? ????? ????????? ?????? ???????????? ?????? ??????????. ?? ?? ????????? ?????? ?????????. ?????????? ???????? ? ????????? ???? ???? ?????????? - ?????? ? ???? ?????? ?????? ???????????? ????? ????? ?????????????. ??? ???????? ???? ?????? ?????????? ?????? ??????????? ???????????? BorderLayout.
?????????? ??????? ??????. ? ??? ????????? ???? JFrame, ? ??????? ???????? BorderLayout???????????? ?? ?????????. ?? ??? ????????? ???? ??????????? ??????????:
// BorderLayoutSample.java
// ???????? ????????????
import javax.swing.*;
import java.awt.*;
public class BorderLayoutSample extends JFrame { public BorderLayoutSample() { super("BorderLayoutSample"); setSize(400, 300);
setDefaultCloseOperation( EXIT_0N_CL0SE );
// ???????????????????
// ? ???????? ?????????? ????? ???????????? ?????? add(new JButton("?????"), "North"); add(new JButton("??") , "South");
// ... ??? ????????? ?? ?????? BorderLayout add(new JLabel("?????"), BorderLayout.WEST); add(new JLabel("??????"), BorderLayout.EAST);
// ???? ???????? ?? ????????? ?????, ????????? // ????????????? ????????? ? ????? add(new JButton("?????"));
// ??????? ???? ?? ????? setvisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(
new Runnable() { public void run() { new BorderLayoutSample(); ) });
}
)
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
???????? ???????????? ? ??????? ??????? ???????? ??????. ???????? ??????? ??????? (5)-(6) ????? ???????? ??????????????? ??? ??????
??????? ? 3
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
? ??????? ???? ????????? ?????????? ????. ??-??????, ???????? ???????? ?? ??, ??? ????? ????????? ????????? ???????????? setLayout() ?? ?????????, ?????? ??? ?????? JFrame (? ????? ? ????? ??? ????? JWindow ? ?????????? ????? JDialog) ???????????? BorderLayout ??????????? ?? ?????????. ??-??????, ?????? ?????????? ? ?????????????? ????? ? ???????? ?????????? ?????? add(). ??? ????? ??????? ?????? ????????- ???? ??????, ? ?? ????? ??? ?????? ??? ????????????? ???????? ????? ?? ?????????
????????. ??????? ?? ?????? ? ????? ?????????? ?????????:
??? ????? ????????, ??????????? ????????? ???????????? ???????? ??????????. ?)?? ??????? ?????????? ??? ????, ??, ??? ?? ?????, ?????? ????? ?????? ? ? ????? ??????? ???????. ?? ???? ?? ????????? ??????? ???????.
[???????????????? ???????????? FlowLayout
; ???????????????? ???????????? FlowLayout ???????? ????? ??????, ?? ??? ?? ????? ??????????. ??? ??????????? ?????????? ? ?????????, ??? ??????? ?? ?????????: ???? ???????, ?????? ????, ??????? ? ???????? ?????? ???? ??????????. ??? ?????????- ??? ??????????????? ?? ????????? ? ??????? JPsnel. ???????? ????????? ??? ??????? ???????? ??, ??? ??????????? ?????? ????????? ???????????????? ?????? (????????, ?^??? ? ??????? JLabel ????????????? ?? ???????? ??????). ?????????? ??????? ??????:
I // FlowLayoutSample.java ?// ???????????????? ????????????
II import java.awt.*; import javax.swing.*;
III public class FlowLayoutSample extends JFrame {
IV public FlowLayoutSample() {
V super("FlowLayoutSample") ; setSize(400, 200) ;
VI setDefaultCloseOperation( EXIT_ON_CLOSE );
VII // ????????????? ???????????????? ???????????? ? // ????????????? ??????????? ?? ?????? setLayout( new FlowLayout( FlowLayout.CENTER ));
VIII // ????????? ?????????? add( new JButton("????")); add( new JButton("???")); add( new JButton("???"));
IX II ??????? ???? ?? ????? setVisible(true);
X 1
XI public static void main(String[] args) {
XII SwingUtilities.invokeLater( new Runnable() { public void run() { new FlowLayoutSample(); } });
XIII }I
XIV }
XV ??????????? ?????? FlowLayout ????? ??? ????????????? ??????: ???????????: ? ? ??????????? ???????????? ???????????, ? ??????????? ???????????? ?????????:* ? ?????????? ????? ????. ? ??????? ???????????? ?????? ??????, ??????????????? ?>
XVI ?????????????? ???????????? ?? ??????.
XVII ????????? ????????? ? ????????, ? ?? ???????, ??? ???????? ???????? ??????? =??
XVIII ???????? ????????????.
XIX ???? ????? ??? ???? ??????????? ??????????, ??? ??????????? ????????????? " ? ] ?? ??????. ????????? ?????????????? ?????? ???? - ??? ?????? ????? ? ????? ????? 1 ???? ??????????? ?????? ????, ?????? ???????? ?? ?????? ???? (?????????? ?????* ???????? ? ???????????? ????? ??????? ? ????????????). ?????? ?????????? ?????"!
???? ?? ????????? - ?? ???????, ??? ??????????, ?? ???????????? ? ????, ?????? ???????? ?? ???? ??????! ??? ?? ?????-?? ?????????? ????????????????? ????????????, ??? ????? ?????????? ?? ?????? ??????, ? ?????? ????????? ??? ???????? ????????: ??? ???????????????? ???????????? ?????? ??????????? ???????????????? ?????? ???????????. ???????? FlowLayout????????? ???????? ?? ?????? ???????, ? ???? ????? ? ?????????? ?????????? ????, ?? ?? ?????? ?????? "??????" ??????????, ? ?? ????????? ?? ???????. ?????? ?? ???????? ????????? ????????? ???????????? FlowLayout??????? ???????? ??, ??? ??? ?????? ?????? preferredLayoutSize() ??? minimumLayoutSize(), ???????????? ?????? ???????????????? ? ??????????? ??????? ??????????, ? ??????? ???? ???????? ?????????, ????? ?????????? ??????, ??????????????? ???????? ???????????? ???? ??????????? ? ???? ??????. ??? ???????? ????? ??? ?????????? ????????????????? ???????????? ? ??????? ?????????? ????????????. ?????????? ????? ???????? ????????? ?????? ????????? ???????????? ????? ????????? ????? ?????????? ????? ??? ?????????? ??????????? ? ???? ??????. ?????? ?? ?????? ?????????? ? ????????.
??????? ???????????? ???????????????? ???????????? ??????? ?????? ? ??????????, ??? ?????????? ?????, ??? ???, ??? ?????????? ?????? ????? "???????" ???? ?????????? (?????? ?? ?????????? ? ????????? ???????). ??? ?? ?????, ???? ????????????? ?? ????? ???????? ???????? ???????????? ????? ????? ??? ??????????? ????????? ????????? ????????????.
????????? ???????????? GridLayout
??? ???????? ?????????? ?? ????????, ???????? ???????????? GridLayout????????? ????????? ?? ??????? ? ???????? ??????????? ??????? ?????????? ????? ? ???????? ????? ??????? ? ????????????, ?????? ?????????? ??????????? ?????? ???????????? ?????????? ???? ?????, ???? ???????? (?? ?? ????????????). ??? ?????? ????? ?????????? ??????.????????? ?????????? ????????????? ?? ???? ????????????, ??????? ?????????? ?????????. ????????? ???????????? ???????? ???????? ??? ????????, ??? ????? ??????? ???????? ?? ????????? ?????????? ?????? ? ???????? ?????????? ?? ??????? ??????????. ? ???????? ??????? ??????? ?????????? ???? ? ???????? ????????? ????????:
XX GridLayoutSample.java // ????????? ???????????? import java.awt.*; import javax.swing.*;
public class GridLayoutSample extends JFrame { public GridLayoutSample() ( super("GridLayoutSample"); setSize(300, 200); setLocation(100, 100);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ??????????????? ?????? JPanel grid = new JPanelO;
// ?????? ??? ????????? ???????????? GridLayout - // ?????????? ????? ? ???????? ? ??????? // ?????? ??? - ?????????? ????? ???????? ?? X ? Y GridLayout gl = new GridLayout(2, 0, 5, 12); grid.setLayout(gl);
// ??????? 8 ??????
for (int i=0; i<8; i++) {
grid.add(new JButton("?????? " + i));
}
// ???????? ???? ?????? ? ????? ????
add(grid);
// ????????????? ??????????? ??????
pack();
// ?????????? ????
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(
new Runnable() {
public void run() { new GridLayoutSample(); } ));
}
}
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
????? 11
????????? ?????? ??????? ???????????? ?????????
?????? ??????? ???????????? ????????? ????????? ??? ??????????????? ??? ??????? ??????? ????? ??? ???????????????? ????????? ? ???????? ???????????? ? ??? ??????????????? ??? ???????????? ?????? ??????? ?????????, ??? ??????? ??? ?????????? ???????? ????? ?????????, ??? ????????? ??????????? ?????????? ? ?. ?. ?? ??????????? ????????????? ?????? ???????????? ????????? ? ????? ??????????? ???????? ? ????? ??????????? ??????????.
� 1. ??????? ???????????? ????????? ??????? ?????? ????????? ???????????? ??????
? ?????? ????????? ??????? ??????? ???????????? ????????? ??????????????? ????????? ???????? ??????. ????? ??????? ????????????? ????????? ?????????? ??????? ????
??????? ? 4
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????? ???????? ?? ??, ??? ? ??????? ???????? ???????????? ?????????? ?????-
??? - ??? ????? ? ???????????? ?????? ??????????? ????? ???????? ??????????? ????.
?????????? ????? ?????? ? ???????????? ?????????? ????? ? ???????. ???????, ?????
??? ????? ?? ???? ??????. ? ????? ??????? GridLayout ???????? ?????????? ???, ?????
??? ?????????? ? ??? ????, ???????, ??? ????? ???????? ??? ????? ???????? ???????.
????????? ????????? ? ???? ???????? ? ?????????? ??????????? ????????? ???- | ??? ????. ?? ???????, ??? ???????? ???????????? GridLayout ????? "??????????" - ?? j ???????? ??? ?????, ????????? ? ?????? ?????? ? ????, ?? ??? ? ???? ?? ?????????? ] "?????????" ???? ??????????. ???? ?? ?? ????????? ????, ?? ?????????? ?????? ?? ????????, ??? ??? ???? ? ?????? ? ???????????????? ????????????? FlowLayout, ? ?????? ????? ?????????? (?????? ?? ????, ??? ?? ??? ?????? ?? ?????? ?????). ???? ??????????? ???????? ???????? ?????????? ????????????.
� ??? ?????????? ????? ?????????? ??????. ????????? ???????????? ????????? ? ????????? ????????????? ??????????? ?? ?????????? ?????????? ?????, ? ???- |
??? ?? ??????? ?????????? ?????????.
� ??? ?????????? ?????? ????????? ?? ?????, ??? ?? ?? ???? ?????? ??? ???????????? ????????????.
???? ????? ?? ?? ?????, ????? ?????????? ???? ??????? ?????? ??? ??????? "*- , ??, ??????? ????? ?????? ????? ????? ????????? ?????? ? ????????? ??????????":*
G'idLayout ? ?????????????? ?????? ? ???????????????? ????????????? FlowLayout, ??????? ????????, ??????? ?? ?????? ???????????? ? ??? ?????????? ?????? ?? ??????- -??????????? ???????, ??? ???????????? ?????? ???????????? ? ?????? ?? ?????????? GridBagLayout). ????? ????????????????? ?????????, ???????? ??????? ????????????????? ??????????, ????????????? ??????????? ? ????? ?????????? ????, ? ?????? ?????? ?????? (?????? ??? ?????? ?? ? ??????). ????????? ???????????? ??????? ??????? ?????????? ??????, ? ???????????????? ???????????? ?? ???? ?? "??????????" ? ?????? ????????? ?? ?? ??????? ????:
// CommandButtons.java // ???????? ?????? ????????? ?????? importjavax.swing.*; importjava.awt.*;
public class CommandButtons extends JFrame { public CommandButtons() { super("CommandButtons"); setSize(350, 250); setLocat'ion (150, 100);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ??????????????????????????????????????? // ?????????????????????????? JPanel grid = new JPanel(
new GridLayout(1, 2, 5, 0) );
// ???????????????????grid.add( new JButton("OK")); grid.add( new JButton("??????"));
// ???????? ?????????? ? ?????? ? ???????????????? // ?????????????, ??????????? ?? ??????? ???? JPanel flow = new JPanel (
new FlowLayout( FlowLayout.RIGHT )); flow, add (grid) ;
// ???????????????????????????? add (flow, BorderLayout. SOUTH );
// ??????? ???? ?? ????? setVisible(true);
)
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {i
public void run() { new CommandButtons(); } });
}
}
? ???????????? ?????????? ???????????? ?? ????????? ???? ??? ? ????? ?????????, ? ??????????? ????? ???????????? ?? ????????? ? 5 ????????. ??????, ??? ?? ?? ?? ???????? ?????? ????, ? ????? ?? ???????????? ??????? ?? ????????? ???? ??????????, ??? ???????????????? ????????? ???????? "?? ??????": ???????? ???????????? ???????? ?????? ? ???????? ???????????? ????? ?????? ??????? ????, ????????? ???????????? ???????? ? ???????????? ???????? ??????, ? ???????????????? ???????????? ???????? ?? ????????? ? ?????? ????.
? ?????????? ??? ???????? ????????? ?????????? ???? ?? ?? ??? ????? ????????- ???? ???? ??????.
???????????? ??????? ? CardLayout
???? ???????? ???????????? CardLayout?????????????? ? ??????? JDK? ????? ?????? ??????, ??? ???????? ????????????????? ?????????? ?? ??????????? ?? ??????????. ???????? CardLayout?? ????????? ?????????? Swing ????????????? ??? ???????? ??? ?????????? ??????? (tabs), ??????? ???????, ????? ???? ?????????? ????????? ?????? ? ???????, ?????????? ???? ? ?? ?? ?????. ? ?????????? Swing ??????? ??????????? ????? JTabbedPane, ??????? ????? ??? ?????? ?? ??????????? ??????? ?? ????, ? ??? ???????? ???? ????????? ??. ?? ??? ?????? ??????.
????????? ?????????? CardLayout???????? ???????????? ?????????, ???????? ?? ????? ?????????? ???????, ??????? ????????????? JTabbedPane, ?? ????? ??????????? ???????????, ?? ????? ?????? ?????????, ?????? ???? ?????? ?? ??????. ?? ????? ??????????? ????? ??????????? ? ??? CardLayout- ?????????? ?????? ?? ?????????? ?????? ?????? ??????? remove(), ???????? ????? ??????, ? ???????? ???????? ???????????? ?????????? ??????? revalidate(). ????? ???????, ??????? ?????????? ????????? :CardLayout?????? ?????????? ? ?? ???? ?? ?????? ????????????? ??? ?? ???????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??? ??????? ???? ?????? ????? ???? ????????? ??????????? ?????? ??????? ?????? ???????? ?????????????? ?????????.
????? ????????????? ?????? ???????????? ?(?, s) ? f(x). ??????? ???????? ?? ????????? ??????????????. ???? ???? ?(?, s) ????????????? ????????? G ??????????? (K(s, ?) = ?(?,s)), ?? ????????? - G, ???????? ? ????? ????? ????????? ????????? (2), ????? ???????????.
?????? ??????? ??????? ????????? (9) ?? ??????????? ????? ????????????. ?? ?????? ?????, ??? ??????? ?????? ????????? ? ???????????? ???????? ? ???????????? ?????? ???????????????? ??????? ??????? ????????? ? ?????????????? ????????: ???? ????? ?????? ? ???????????? ???????, ??????? ????? ???? ????????? ??? ??????? ????? ??????.
??????? ? 5
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????? ???????????? SpringLayout
? ?????? ?????????? JDK ??????? ????????????? ???????? ????????????, ???- j ?????? ?????? ???????? ??????, ???? ?????? ???????? ???????????? ???????????. ??? ???????? ???????????? SpringLayout ?? ?????? javax.swing. ?????? ???????? ?? ???????????????, ???????? ??? ?????? ?????????? ? ?? ?????? ?? ???????? ?? ?????? ?? ??? ???????? ??? ?????????? ????????????. ? ?????? ??????????? ????????????? ?????? ?????????????? ?????? Spring, ??????? ????????? ?????? ?????????? (? ????????) ????? ????? ?????? ????????? ???????????. ?????? ? ?????????? ?????? - ??? ??? ????????, ?????????, ???????? ? ????? ???????. ????? ???????? ?????????? ? ????? ????????? ?????? ? ???? ?? ??????????: ????????, ????? ?????????? ????? ???????? ? ????? ????????? ?????? ??????????, ?? ??????? ??? ??????. ?? ??????-
??? ??? ?????????? ????? ???????????????? ??????, ?????? ???????? SpringLayout ????????? ????????? ? ??? ????????? ???????, ?? ????? ?????????? ?????? ???????????? ? ?????? ????????????? ????????.
?? ?????? ????? ?????? ????????? SpringLayout ??? ?????????? ????????? ? ?????? ????????? ?????????? ? ????? ???????????????? ??????. ????? ?????????? ?? ?? ?????? ????????, ?????? ???????? ????????? ????????: ?????? ????????? ???????? ????????? ??????????? ?? ??????? ??????????, ?????? ???????? ?? ??????? ??????????? ????? ??????? ?????????, ????? ????????? ?????? ????????? ? ?. ?. ?????????? ????????? ?????? ? ?????? ??? ? ????????:
// SpringLayoutSample.java // ?????? ????????? SpringLayout import javax.swing.*; import java.awt.*;
public class SpringLayoutSample extends JFrame { public SpringLayoutSample() { super("SpringLayoutSample"); setDefaultCloseOperation(EXIT_ON_CLOSE);
// ?????? ? ?????????????? SpringLayout SpringLayout si = new SpringLayout();
JPanel contents = new JPanel(sl);
// ??????? ???? ??????????? JButton buttonl, button2;
contents.add(buttonl = new JButton("??????")) ; contents.add(button2 = new JButton("?????????"));
// ???????? ????????
si.putConstraint(SpringLayout.WEST, buttonl,
5, SpringLayout.WEST, contents); si.putConstraint(SpringLayout.WEST, button2, 5,
SpringLayout.EAST, buttonl);
// ??????? ???? ?? ????? setContentPane(contents); setSize(300, 200) ; setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() { public void run() { new SpringLayoutSample(); ) });
}
}
?? ??????? ????????? ???? JFrame, ??? ??????? ??????????? ???????? ?????? JPanel, ???????????? ???????? ???????????? SpringLayout. ? ?????????? ?????? ??????????? ???
???????? SpringLayout???????? ????? ? ?????, ?? ?????????? ?? ???????????? ??? ???????? ?????????? "???????". ??????????: ????? ??????????? ??????????, ????? ??? ?????? ?? ???, ?????????? ??????????? ??????????? ?????????? ?????????? ????? ????, ? ???????? ?? ?????? ???????? ???????????? ?? ??????? ??????????? ??????? ???????????? ? ???????? ?? ??????? putConstraint(). ???????????? ????? ??? ????? ??????, ? ??? ?? ???????????: ???????? SpringLayout????????????, ?????? ?????, ??? ??????????????????? ?????????? ??????????, ? ??? ?????? ?????? ???? ????? ??????? ??????.
?????????? ????????????
????? ?? ?????????? ?? ???????????? ????????????? ? ?????????? ????????? ????????????, ?? ?????? ??????? ???, ?????? ????? setLayout(null). ? ???? ?????? ??? ??????????????? ?? ?????????? ???????????? ??????????? ?? ?????? ??????? ?? ???? ?????: ??????? ? ??????? ??????????? ???????? ???????? ????? ? ?????????, ??????? ??? ??????? ?????????? ????? setBounds() ? ?????????? ???????????????.
??????? ?? ??????????? ?????????? ????????????, ????? ???????? ??????? ?? ???? ????????? ???? ?????? Java-????????????, ??????? ?????? ??? ???. ??? ???????????? ???????????? ????? ???????? ???? ?????????? ?????????? ?????????? Swing, ??? ???????? ???????? ?? ?????? ????????? - ??? ????? ?????????? ? ???? ? ?????? ??????????? ????????????. ???????? ? ??? ???, ??? ????? ??? ???. ???? ???? ???????? ??????????????????? ?????????? ?????????? ?????????? ????????????? ????????? ? ?????????? ???????????, ? ????? ?????????? ???????? ???????? ??, ??? ??????????, ? ????????????, ???????????????? ??????-???? ????????? (? ?????????? ??? ??? ????? ?????????? ???????????? ?????????? ????????????), ????????? ??? ????????.
???????????? ???????, ? ??????? ?????????? ????????? ?????????? ????????????, ???????? ??????????? ??????????, ??? ?? ?????? ??? ??????????? ?????????? ?????? ?????????? ??????????, ????????, ??????? ????????. ????? ??? ????? ??????????? ????????? JXLayer??? ?????????? ?????? (glass ????), ??????? ?? ????????? ? ????? 6.
????????? ????????????
? ?????????? ???????, ???????? ????????? ? ???????????????? ????????????, ?? ????????????? ? ???????? ??? ??????????? ?????????? ???????????? (nested layou:*" ???????? ???? ???????? ????? ?????? - ?? ???????? ????????? ??????????? ? ??????
???? ??????????? ????????????, ? ????? ?????????? ?? ???? ? ????? ??? ????????? ???????? ??????????. ???????? ??????????????? ??????? ????????? ????????????, ????? ???????? ????????? ?????? ???????????? ???????????.
? ????????, ??????? ???????????????? ????????? ?????? ????? ??????? ?? ?????? ????????????? ???? ?????????? ????????????. ??, ?????? ??????, ???????? ?? ????? ??????? ???????, ???????? ??? ???????? ???????????? ??????????? ?? ?????????. ? ?????, ????????????? ???? ?? ????? ???????????? ????? ??????????? ???????? ? ??????????? ????? ???????????? - ??? ????? ?????? ???? ???, ?????? ????? ??? ???? ???????? ? ???????????? ???????????. ????? ???, ? ???????????? ?????????? ?????????? ????? ???????????? ?????? ????????? ????, ? ???? ????? ????? ??????? ???????????? ??? ??????. ??????? ????????? ??????? ????? ?????????? ? ??????? ???? ???? ??, ???????, ?? ??????, ? ?????????? ????????????? ????????????, ??????????? ??? ???????? ????????????????? ?????????? ???? ??????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
? ?????? Cj> 0 ?????? ?????? ????????????? ???????? ????? ????????????????, ????????? ??????? ??????????? ???????? ? ??????? ??????? (11), ??? ???????, ??????, ??? ? ??????? ??????? (10).
???????, ??? ? ??????, ????? ? ?????????? (6) ??? ???? ?????????:
???????, ??? ? ? ?????? ??????? ???????????? ?????? ???????? ?????????????? ?????????, ??? ????????????? ??????? ?????? ??? ??????????? ????? ? ???????? ?????????? ????? ?????????? ???????? ??????? ?? ???? ??? ????????????.
??????? ? 6
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??????? ???????????? BoxLayout
??????? ???????????? BoxLayout- ?????????? ???????????? ???? ????????? ?????????? ????????????. ?????????? ???????? ????????????? ???????????? BoxLayout?? ??????? BorderLayout.
???????? ???????? ???????????? ??????????? ?????????? ? ????????? ???????: ????????? (?? ??? Y) ??? ???????? (?? ??? X), ??? ???? ?????? ????????? ????????? ????? ??????????? ?? ??????, ?? ?????? ??? ?? ??????? ?????, ? ????? ?? ????? ??? ?? ????. ?????????? ????? ???????????? ?? ????????? ???????, ?? ??? ??? ??????? ?????????? ??????????? ?????? (?? ???? ???? ?????). ??? ????????????? ??????????, ?????? ????? ?? ???. 7.1
public Boxl() {
super("Boxl - Y"); setSize(400, 200);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ????????????????????????? Container ? = getContentPane();
// ????????????? ??????? ???????????? ??
// ??? ? (?????????)
BoxLayout boxy = new BoxLayout(c, BoxLayout.Y_AXIS)
c.setLayout(boxy);
// ??????????????????? c.add( new JButton("????")) ; c.add( new JButton("???")); c.add( new JButton("???")) ;
// ??????? ???? ?? ????? setVisible(true);
>
static class Box2 extends JFrame { public Box2() {
super("Box2 - X");
//' ????????????? ?????? ? ??????? ????
setSize(400, 200); setLocation(100, 100);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ???????? ?????? ??????????? Container ? = getContentPane();
// ????????????? ??????? ???????????? ??
// ??? X (????????)
BoxLayout boxx =
new BoxLayout(c, BoxLayout.X_AXIS);
?.setLayout(boxx);
// ???????????????????c.add(new JButton("????")); ?.add( new JButton("???")); c.add( new JButton("???"));
// ??????? ???? ?? ????? setVisible(true);
}'
}
public static void main(String[] args) { SwingUtilities.invokeLater(
?? ?????? ??????, ??? ??????????? ?????? BoxLayout????????? ???????? - ??? ?????????? ??????? ?????????, ? ??????? ?? ????? ???????????????. ?? ? ????? ?? ????????????? ???? ?????? ?????????? ???????????? ?????? ?? ???????????. ???????, ????? ?? ??????? ??????? ???????????? ???????, ? ???????????? ??????????????? ????? Box?? ?????? javax.swing. ? ??? ?????????? ??? ??????????? ??????:
public static Box createHorizontalBox()
public static Box createVerticalBox()
??? ?????? ?????????? ????????? ?????? Box, ??????? ?????? ?????????? ??? ????????? ???????? ???????????? ? ??????????? ?? ???????? ?????? Swing JComponent. ??????? ??????? Box?? ?????? ???????????? ??? ??????? ?????????? ??? ???????????, ?????? ? ??????? ????????????? ??????? ?????????????. ?????? ????? ?????????? ????????? ? ?????????????? ??????? ?????????????, ?????? - ? ????????????.
?????? ?????????, ??????? ????????? ??????? Box, ?? ?????? ??? ?? ???????, ??? ??????? ?????? JPanel. ???? ? ???, ??? ??????? ??? ?????? ?????????? Swing, ??? ?? ?????, ???????????? UI-?????????????? ????? ??????????. ??? ????? ? ??? ??????? JPanel, ? ?????? ???????? ???????? ????????? ??????? ???? ?????????? ?????????
// BoxStruts.java
// ????????????? ???????? ??? ??????? ???????????? importjavax.swing.*;
// ?????????? ??? ????? ?????
importcom.porty.swing.BoxLayoutUtils;
public class BoxStruts extends JFrame ( public BoxStruts() { super("BoxStruts"); setSize(250, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE );
// ??????????????????????????????????????? JPanel ? = BoxLayoutUtils.createVerticalPanel(); p.add(new JButton("????"));
// ???????? ???????????? ???????? p.add(Box.createVerticalStrut(15)) ;
// ????? ????????? ? ???????? ??????? ??????? p.add(newJButton("???")); p.add(Box.createVerticalStrut(5) ) ; p.add(newJButton("???") ) ;
// ?????? ? ?????????????? ??????? ????????????? JPanel ?2 = BoxLayoutUtils.createHorizontalPanel() // ???????? ????? ??????? ? ????? ???????????? ?2 . add(Box.createHorizontalStrut(10)); ?2.add(newJButton("????"));
// ???????? ?????????????? ???????? ?2.add(Box.createHorizontalStrut(25)); ?2.add(newJButton("???"));
// ????????? ?????? ?? ????? ? ?? ???? add(?, "North"); add(p2, "South");
// ??????? ???? ?? ????? setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable 0 ( public void run() { new BoxStruts(); ) ));
\
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??? ?? ??????? ????? ???? ????????? ??????????? ?????? ??????? ????? ?? ??????????? ????????.
????????, ??? ???????????? ?? ?????? ??????????? ???????? Ai ?????? (14) ????????????. ????????, ??? ????? ??????????? ????????, ??????????????? ????? ???????????? ????????, ??????? ??????, ? ???????? ??? ?????????? ??????????????.
??????? ? 7
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????? 7. ????????? ????????????
??? ?? ??? ????? ????????? ?? ?????????? ????????, ?????????? ??????????? ?? ????? ? Java ?????????? ?????????? ????????. ?? ???????????? ????? add(), ?, ??? ?? ??????????, ?? ????? ?????????? ???? ?????????? - ??????, ???????, ????????? ????. ??? ????? ?????????? ????????, ?????? ??? ??? ???????? ?????????? ?????????? ????? ????????? ?????? ?????????? ? ??? ???????????? ?? ?????? - ?????? ????? ??? ????? ???????????? ??? ?????????? "??????????" ??????????, ????????? ????????? ?? ??????????? ??????????? ?????? ? ??? ????????. ????? ????????? ?????? ? ?????? ????????????, ??? ?? ???????? ? ??????????? ??????????? ???? ?????????? ???????????? ?????????? ????????, "????????? GUI". ??????? ?????????? ????????? ???????. ?? ???????? ????? ??????? ????? - ?????? ???? ? ?????? ??? ?????????? ???? - ? ???????????? ?? ??? ??????????? ??? ??????????, ??????? ??? ??? ?????????? ??????? ? ???????. ????? ????? ???? ????? ???????????? ? ?????? ????????, ??????? ??? ?????????? ????????? ?????????????? ? ????????? ? ??????????? ??? ?? ???????. ??? ????? ?????? ? ??????.
?????? ???????????, ??? ????????????? ????? ?? ????? ? Java ???????? ?? ?????? ?????. ???? ????? ???? ??????? ????????? ????? - ?? ????? ????????, ??? ????????? ?? Java "??????? ???? ???, ? ??????????? ?????". ???? ?? ?? ?????????? ?????? ???????????? ??????????, ??????????? ?? ??? ??????????? ? ??? ???? ????? ????? ? ??? ?????????, ??, ???????, ?? ?? ??????? ????? ???????? ?????????, ?????????????? ??? ?????? ???????????????? ???????????? ???????, ??? ???? ????????? ?? ?? ???????. ???????????? Java ????? ??????? ???????, ??????? ? ????????? ????? ??????????. ?? ? ????? ?????? ???????? ???-?? ?????? ??? ???????? ????? ????? ????????????? ????????? ? ????????????? ? ??? ???????????? ???????? Java - ??????????? ????, ????????????? ?????? ? ????? ??????? ??????????? ?????????? ?????? ?????? ? ????????? ???, ? ??????, ???????? ??????? ???? ????????, ????????? ?? ?????. ??????????? ?? ???? ???????????? ???????? ?????????? ????? ???? ???????????, ? ??????, ????????? ?????????? ?? ???????? ??? Windows, ? ?????? ???????????? ??????? ????? ????????? ??????? ??????? ??? ??????? ?????????. ???, ????????, ? ?????????? ???????????? ?? ?????? ??????? ??? ?????? ?????????? ????????? ? ??? ???? - ? ?????????, ???????????? ?????????? ??????? ? ?????????? ??? ?????? ???????, ?? ?????? ?????? ?? ??????. ??????? ??????? ??????? (????? ???????? ????????? ?????????? ? ??? ????????) ? Java ?? ?????????.
???? Java ??????? ????? ????? ???????????? ????? ??????????? - ?? ????? ?????????? ???????????? ?????? ????????? ????????? ??????????? ?????? Java. ?????? ???????? ?????? ??????????? ???????????? ??????????? ?? ????? - ????? ?????????? ???????? ? ????????????? ?? ?????????? ????????. ??? ??? ???????????? ???????? ???- ????????? (layoutmanager), ??????? ?????? ????? ?????? ???? ? ?????????? ????????????????? ??????????. ???????? ???????????? - ??? ????? ??????????? ??????1, ??????????????? ? ?????? (? Java ?????? ??????? ? ???????????) ? ????????????, ????? ??????? ?? ??? ????? ????????????? ??????????. ?????????? ?? ?????????, ??????????? ??????, ?????????? ? ???????? ?????? ???????? ???????????? ???????????, ???
' ?? ????? ???????? ?????????????? ???????? ???????????? ????? ??????? ??? ?????????- ???????? ???????????? ???????????, ????????????? ?? ??????? ??????, ???? ???????? ????? ????? ? ?????? ?????????? ? ??? ????????????? ???????.
?????????? ????? ????? ???????????????? ??? ??????? ? ???? ?????? ? ????????????? ? ??? ???????, ??????? ??? ?????? ????????????? ??????????? ?????????.
???? ???????, ??? ? Swing ???????? ???????????? ?????? ??? ??????? ????, ??? ??????. ?? ????????? ?? ?????? ???????? ???????? ????? ????????????? ?????????, ?? ? ???? ??????????? ?????? ? ????????? ??????? ??? ??????????, ?? ????????
????, ??? ??? ???? ?????????? ??????? ? ???????????? ???????????. ?? ????? ????, ????????? ??????? ???? ?????????? ??????? ??????????? ????????? ???????, ? ???? ?? ?? ?????? ???????????? ???????? ???????????? ??? ?????? ??????????, ??????? ?? ?????? ???????? ???? ? ??????? ????? ????? ??????????? ???????.
? ???? ????? ?? ??????, ??? ????????????? ????????? ???????????? ? ??? ???????? ????? ?????? ??? ?????? ? ????. ????? ????? ?? ???????????? ?? ???????????? ??????????? ????????????, ??????? ? ??????????? ????? ????? ??????. ?????? ????? ??????????, ??, ??? ???????, ??????? ?????????? ??????? ?????????? ????????????? ??????????, ? ?????? ????? ???????? ?? ?????? ???????????? BoxLayout, ???????, ???? ? ???????? ???????????? ???????, ???????? ?????????? "???????" ????????? ????????????????? ??????????, ? ??????? ?????????? ???????????? GridBagLayout, ? ????? ??? ???????????.
? ??????? ????????? ??? ?????? ? ???????????? ? ?????????????? ??????? ?????????????. ??? ????? ???????????? ????? BoxLayoutUtils, ????????? ? ?????????? ???????. ????? ???????????? ???????? ???????? ????????? ????????, ????????? ??????? Box- ??? ???????? ???????????? ???????? ???????????? ????? createVerticalStrut(int), ? ???????? ????????? ???????? ??????????? ?????? ???????? ? ????????. ?????????? ???????? ????? createHorizontalStrut(int), ????????? ?????????????? ????????. ????? ????? ?? ????????? ???????????? ???????? ????? ???? ??????? ??????????? ??? ????? ???, ????? ?????????? ?? ?? ?????? ????.
??????, ???? ????? ??????? ?????? setVisible() ?? ???????? ????? ????(), ????????? ???? ? ???? ???????????? ? ??? ??????????? ??????????? ?????? (??????????? ?????? ???????????, ??? ?? ???????, ?????????? ????? getPreferredSize()), ?? ???????, ??? ???????????? ????? ? ???? ???????. ??? ??? ? ?????? ???? - ????? ????? ? ?????????? ??????? ?????? ?????? ??? ????, ??? ?????????? ??? ??????? ?????????? ? ????????, ?? ??????????? ????? ???? ????? ??????? - ??? ??????????? ? ???????????????? ??????? ?????????? ????????.
????????
??????????? ???????? ???????????? ????????, ?????? ??? ????? ?????????????? ???????????? ??????. ????? ? ?????????? ? ??????? ????????????? ??????? ?????????? ????????????, ??? ??????? ??????? ????? ????????????, ??????? ??? ????? "?????", ?? ???? ?? ???????? ????????????? ???????. ????????? ??????????, ???????? ?????? ????????? ? ?????????, ????? ????? ?????, ? ???? ?????????, ??? ????????? ???????????? ????????? ??????? ????? ???? ? "?????????????". ????? ? ?????????? ?? ???????? ???????????, ????????? ?????, ??? ?????????? ???????????? ??????????? ????? ???????????, ????? ??? ??????, ? ??????????? ?? ????????? ??? BoxLayout.
????? ??????? ????????? ? ???????? ? ???, ????????, ?????? ??? ???? ??????. ?????? ?????? ????????????? ??? ???????? ???????????? ???? ?????? ???????????? ??? ?????? ????????? ?? ? ????? ??????? ????, ??? ? ?????????? ????????, ? ???-?? ?? ????? ???????, ????? ? ??? ????????. ???? ? ???, ??? ??? ??????? ???????? ?? ?????????? ????????? ???????????? ? ?????? Component????????????? ??? ??? ?????????, ???????? ???????????? ?? ???? X ? Y, ? ???????? BoxLayout?? ??????? ??????????. ??? ????????? ??? ????????? ???? ?? ??????, ?? ?????? ? ????????? ???????.
???????, ? "????????" ? ?????? Box??????? ??? ???? ???????? ??????? ?????????? - ????????????? ???????. ?????????? ?? ???????? ?????? ?? ???????? - ??? ??????? ??????????, ?????? ?????????, ? ?? ?????? ?? ??????? ????. ???????? ??, ?????? ?? ??? ?? ??? ?? ??????, ? ??????????? ??????????? ??????? ?????? ?????????? ???????? ? ????????????, ?????? ?????? ?? ?????? ??? ??? ?? ??? ??????. ? ?????? ?? ?????????? ?????? ? ?????????????? ?????????:
// BoxRigidAreas.java
// ?????? ????????????? ????????????? ???????? import javax.swing.*;
import com.porty.swing.BoxLayoutUtils; import java.awt.*;
????????? ????????? ? ???????? - ???????????? ?????? ????? ???????? ????-?? ? ???????? ????. ?????? ?? ??????? ??? ???????? ??? ????????, ? ????? ???????????? ????? ? ??? ? ?????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
? ????? ??????? ??????? ????????? (9), ? ??????? ???? ??????? ????????? ????????? ???????? ????? ?????????? ?????? ? ?????? I ??????? ? ????????. ?????? ??????? ?? ?????? I ????????? ??????? (9) ???????????? I ????????-
???? ???? ?(?, s) ? ?????? ????? /(s) - ????????????? ???????, ?? ?????? ?????????????? ???????????? ???? ?????? ?????????? ?????? ??????? ??????? ???????????????? ?????????. ? ???? ?????? ????????? ??????? ????????? ? ????????? ??????????? ????????, ?? ??? ???? ??????????? ??????? ???????
??????? ? 8
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????? ? ??????????
???????? ?????????? ?????????? ??? ???????? ??????????? ? ??????????? ???????? ???????????? ???????????, ? ??? ?? ??????????, ?????? ?? ???????? ?????? ????????? - ?? ?????? ????????? ???????????? "??????" ????? ????????????. ?????? ????? ???????????? ???????????? ???????????, ??? ????????? ????????????? ? ??????????, ?????????? ??????? Box. ???? ? ???, ??? ???????????? ?????? ?? ?????? ??? (? ???????, ?? ????????? ??? ?????????????? ????????) ???????????. ??? ?? ??? ????????, ??????? ???????????? ??? ??????? ?????????? ???????????? ? ?????????? ???????????? ??? ??????? ????? ????????????, ??????? ????? "?????", ??? ?? ????????? ????????????? ???????. ??? ???, ???? ? ?????? ? ??????? ????????????? ?? ??????????? ??????? ??????????? ????????, ????? ???????????? ?????? ?????? ?? ????????? ????? ???????????, ? ???, ??? ???????, ?????? ?? ??? ??????, ???????? ?? ????? ????????. ???? ????? ???????? ? ? ????????????? ?????????? ? ???????????? ??????.
??????? ????? ??????? ???????? ?????, ?? ???????? ???????????. ??? ??? ??????? ????????????? ???????, ? ??????? ???? ?????????? ????? ?????????, ? ?????? ?????? ???????. ?????? ????? ????????? ??? ? ????????? ??? ?????????? ???????????. ??????? ? ??? ??????????????? ????? BoxLayoutUtils ??? ???? ??????? ???????:
// com/porty/swing/BoxLayoutUtils.java
// ????? ??? ??????? ?????? ? ?????????? BoxLayout
package com.porty.swing;
import javax.swing.*;
public class BoxLayoutUtils {
// ??????? ?????????????? ????????
// ?????????????? ???????
public static Component createHorizontalStrut(int size) { return Box.createRigidArea(new Dimension(size, 0));
}
// ??????? ???????????? ????????
// ?????????????? ???????
public static Component createVerticalStrut(int size) { return Box.createRigidArea(new Dimension(0, size));
)
// ????? ???? ??????, ????????? ????? }
???? ???????? ??????? ?? ?????? ??? ???????? ??? ????????????? ???????? ? &- ??? ????????? ?? ?? ???????, ??? ? ??????????? ???????? ?? ?????? Box, ?? ???????.-?- ??? ??? ???? ?????????????? ????? ???????????? ?????? ??????. ? ???? ??? ????? ????? ????????? ???????????? ?????? ??????, ?? ?????? ????? ??????? ??? ???????
???????????? ??????????? ?? ????
???????????? ?? ???? - ?????????? ????????? ?????? ?????? ????????? BoxLayout, ? ???? ?? ????? ???????, ???????????? ?????? ????? ?????????? ????????? ??????????????? ????, ??? ?????????? ????????????. ??? ????? ???? ??????????, ??? ????????? ??????????? ??? ??????? ???????????? ?????? ??????????????. ???????, ?? ??? ??? ???????, ? ?? ??????????? ??? ?????? ?????????? ?????????? ? ????????????? ?? ????.
?????? ????????? (?????????????? ?? ?????? java.awt.Component) ????? ??? ?????????, ???????? ??? ??? ???????????? ?? ???? X ? Y, ?? ???? ??? ??? ????? ??????? ?????????? ? ??????????. ??? ??? ?? ???? ?????????? ??????? ???????????? ??????, ??? ?????????? ????????????? ?????? ????. ?? ????? ???????? ???????? ?????????????? ??????? ??????????? (?? ???? ??????? ?? ??? X) ????? ?????? (???????????? ??????? ?????? ?????? ?????????? ???????????, ???????? ? ????????????) - ????????? ?? ?????, ?????? ??? ?? ??????. ??? ???, ??????? ??? ????? ???????????? ?? ???? ??????.
????????
???????????? ??????????? ?? ???? ?? ?????????, ??? ??? ????? ?????????? ?? ?????? ??????, ???????? ??????? ??????????? ???????????? ??????????. ??? ????????? ?????? ????????? ??????????? ???????????? ???? ?????, ?? ???? ???????????? ????????? ???????????, ??????????? ? ??????????. ?? ???? ??????? ???????????? ???????? ???????????? ?? ???? ??? ??, ??? ? ??? ???????????????? ???????????? (FlowLayout), ???????? ? ???????.
?? ????? ???? ???????????? ?????????? ? ???????????? ????????????? ????? ???????? ????????????? ?? ???????????? ? ???????? ????????? ???????????. ??? ??????????????? ???????????? ? ?????? Component ?????????? ????????? ?????????:
� Component.CENTER_ALIGNMENT - ???????????? ??? ????? ????????? ????? ???????? ??????????;
� Component.LEFT_ALIGNMENT - ????????? ????? ?????? ? ???????????? ??? ????? ????? ????????;
� Component. RIGHT_ALIGNMENT - ????????? ????? ?????? ? ???????????? ??? ????? ?????? ????????.
??? ??????? ???????????? ????????? ???????????? ??? ???????????? ?? ??????????? ? ??????????? ?????????????, ? ??? ????? ????? ?????????? ? ??????? ??????????? ???????????? ??????????? ???????????? ???? ???. ???????????? ?????????? ???????? ???. 7.2.
?????????? ??????? ???? ? ???????????? ????????????? (?? ??? Y). ????????? ??- ??? ???????????? ? ??????? ? ?????????????? ????????????? ???????????, ? ????????? ???????? ???????????? ??????? ??????????? ???????????? ???? ????? (?????????????? ??????? ???????? ????? ?????????????). ? ?????? Component ??? ????????????? ???????????? ?????????? ????????? ?????????:
� Component.CENTER_ALIGNMENT- ?????????????? ??? ????? ????????? ????? ???????? ??????????;
� Component.TOP_ALIGNMENT- ????????? ????? ?????? ? ?????????????? ??? ????? ??????? ????????;
� Component.BOTTOM_ALIGNMENT- ????????? ????? ?????? ? ?????????????? ??? ????? ?????? ????????.
??? ? ?????, ??? ?????????? ? ??????????? ????????????? ??? ????? ????????? ????? ??? ???????? (???. 7.3, ?????).
???? ??? ?????????? ????? ???????????? TOP_ALIGNMENT, ?? ??? ???????? ?????? ??????????, ? ??? ?????????? ??????????? ? ??? ??????? ????????, ??? ???????? ?????? ?? ???. 7.3. ????? ??? ???????????? BOTTOM_ALIGNMENT ???????? ??????????,
?????? ??? ???????? ????? ??????????, ? ??? ?????????? ??????????? ? ??? ?????? ????????. ??? ?? ??? ??????????????????, ??? ????????????? ???????????? ??????????? ????? ???????, ??? ???????????? ??? ??????, ????? ??? ?????????? ? ??????????
????? ?????????? ????????????.
??????, ???? ?? ??????????? ???????????? ?? ?????? Component, ?? ???????, ??? ???
??????? ?????????? ???????????? ??????????? ???????????? ????? ? ????????? ??????? (float) ?? 0 ?? 1. ????? ???????, ??? ??? ??????????, ????? ????? ?????????? ????????? ?? ????. ???, ????????, ????????? RIGHT_ALIGNMENT ? TOP_ALIGNMENT ????? ????. ??? ??????, ??? ???? ????????? ????????? ?? ???? ??????? ?? ??? (? ?????? ??? ? ?????? ???????, ??????????????). ???? ??????????? ???????? ????????????, ?? ????????? ????? ?????????? "???????????" ?? ??? ?, ? ????? ??????, ???????? ?? ?????? ?? ???????. ????????? LEFT_ALIGNMENT ? BOTTOM_ALIGNMENT ??? ??? ????? ??????? (?? ???? ????????? ????????? ??????? ?? ????). ??? ??? ??? ??????? ????? ?????? ??????????, ??? ??????? ????????, - ???????? ???????? ????????????? ???????? ????????? ????????? ???????????? ???????????, ?? ?? ????? ?????? ? ???????? ????????? ???? ????????, ??? ????????? ????? ????? ??????????? ?????????? ???????????? ???? ?????.
???? ??? ??? ??????? ??????????, ???????? ?????? ?? ????? ?????????? ???????????? ???????? ???????????? ??????????? ???????. ?????????? ??????, ? ?????? ?????? ?????????? ???????????, ??? ?????????? ?????????? ? ??????????, ????? ????????? ???????????? ??? ??? ?????? ???????? ????????????.
? ?????? ???????, ??? ?????? ????? ?????????? ?????????? ??????? ? ???????
?????????????, ?????????? ?? ????????? ??????????? ? ?????????? ?????????????. ????? ???????????????? ????????? ????? ??????? ?? ?????????????? ? ???????????? ?????? ? ????????????, ???????? ??? ??? ???????? ??????. ?????? ????? ?????? ???????? ?????????? ???? ?????????? ???????????? ????????????, ? ?? ???????? ??????????? ??? ???. ? ????? ??????? ?????????? ???????????? ??????????? ?? ???????? ? ??? ??????? ????? ??????? ? ???, ??????? ? ??? ??????????????? ?????
BoxLayoutUtils??? ???? ???????:
// com/porty/swing/BoxLayoutUtils.java// ????? ??? ??????? ?????? ? ?????????? BoxLayout
package com.porty.swing; import javax.swing.*; public class BoxLayoutUtils {
// ?????? ?????? ???????????? ?? ??? X ??? // ?????? ???????????
public static void setGroupAlignmentX(float alignment,
JComponent... cs) { for (JComponent ? : cs) {�
?.setAlignmentX(alignment);
JComponent... cs) { for (JComponent ? : cs) { ?.setAlignmentY(alignment) ;
}
}
// ????? ???? ??????, ????????? ?????
}
??????, ???????? ????????? ? ??????? ????????? ???????? ????????????, ????? ?????????? ????? ?????? ??? ??????????, ? ????? ?????? ????????? ?????? ?????? ?? ??? ? ???? ?? ????? ???????. ????? ????? ??? ????? ???????? ?????? ???, ??? ?????, ? ???? ???????? ?????????. ???????? ????????, ??? ????? ??? ????? ??????? ????????? ?? ????????? ????? ??????? ? ??????? ?????????????, ? ? ????? ?????? ??? ???? ????????? ??????? ????? ??????? ?????? ?????? ????????????.
???? ?? ???????, ? ?????????? ??????? ??? ??????? ??????, ??????? ??????-?? ??????? ?? ???, ??? ??? ????????. ?????? ???????, ?????? - ? ?????? ???? ??????????? ????????????, ? ? ?????? - ???????????? ?? ????? ???????. ????????? ????? ?????? ?????? BoxLayoutUtils, ????? ????? ??????????? ????????? ???????????? ???? ???????????, ? ??? ?????? ?????????? ?? ?????, ?????????? ???? ? ?????? ??????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
1. � 2. ??????? ???????????? ????????? ? ??????? ?????? ???? ?? ???????????
?????? ???????????? ?????? ??????? ???????????? ?????????, ??????????? ? ?????? ????? (1.2), (1.4), ??????? ? ?????? ?(?,s) - ???? ????????????? ????????? ?? ???????????.
??????????? ?????????? ????, ???????????? ? ???? ???????? ?????
??????? ? 9
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?????????? ????????????? ??????????? ? GridBagLayout ?????????????? ????????? ???????? ??? ????????? GridBagConstraints, ??????? ????????? ????????? ???????????? ?????????? ? ????? ? ??? ???????????. ???????? ???, ?? ????????? ??? ? ????? add() ?????? ? ??????????? ? ????????? ???????????. ? ?????????, ?????? ???? ?????? ?????? GridBagLayout ????? ??????? ????? ??? ???????, ? ??? ? ??? ??????????? ?????????? ????????? ???????????? ????????. ???? ? ???, ??? ??? ????????? ???????? ? ??? ? ???? ????? (??? ???????????? ?????????? ????????-???????????????? ????????????????), ????? ???? ????? ?????? ?? ????????????? ????????????? ?? ???????, ? ?????????? "????????? ????" ? ?????????? ?????????? ???????? ??????????? ? ?????? ??? ??????????.
??????? ?????? ? ????????? ?????????? ? ???????. ??? ??????? ???????????? ??????? ?????? ?? ????????? ? ???????????:
?????????? ? ???????, ????? ???????, ???????? ? ????? gridx ? gridy. ??? ??? ????????? ?????? ??? ????? ?????????? ????????? ???????????, GridBagConstraints ??????? ????????????? ??? ????????? RELATIVE, ???????? ??????? ????????? ????? ???????? ? ??? ?? ??; ? ????????? ??????? ?? ????????? ??????????? ???????????. ????? ????????? ???????? ??? ???????????????? ???????????? FlowLayout, ??? ????? ??? ?? ????????? ?????????- ????????? ???????????????? ??????. ?? ?????????, ???? ?? ?? ?????????? ???????? ??- ??? gridx ? gridy, ??? ??? RELATIVE ? ???????????, ?????????? ?????????? ? ???? ???.
??? ??? ????? ??????, ?? ????? ???????, ????? ?????????? ????? ???????? ????????- ?? ????????? ??? ???????????.
� gridwidth - ?????????? ?????, ?????????? ??????????? ?? ???????????, "?????- ?????????? ? ???????
� gridheight - ?????????? ?????, ?????????? ??????????? ?? ?????????, "??????- ?????????? ? ???????
????? ????? ????????? ?????? ?????? ???? ??? ??? ???????, ?????????? ?? ????, ??????? ??? ?????. ??? ???? ??????? ????????????? ???????? GridBagConstra " REMINDER, ??????? ? ???????, ??? ????????? ?????? ??? ?????????? ?????? ?? ? ???? ?? ???? ??? ???? ?? ?????. ??? ??? ????? ?????, ??? ????????? ? ???? ?????? ?? ???.#- ??? ?? ????????? ???????? ?????????? ????? ? ?????-?? ?? ????? ??? ????????, ?? ??? ????? ?????? ??? ??????.
?????? ??????????? ??????? ?? ?????? ??????????? ???????, ??? ??? ?????-:-" ? ??????? ???????????, ? ?????????? ?????, ??? ??????????. ????????? ???????"- ?? ? ????? ?????? ??????? GridBagLayout ???????????? ??? ??????????? ?????? ???? -? GridBagConstraints, ? ????? ????? ???????, ??? ??? ????????, ?? ??????? ???????????:
????, ???????? ??????????? ?? ???????? ?????????:
� fill - ??????????, ????? ?? ????????? ????????? ??? ???????????? ??????, ? ???? ?????, ?? ???. ????? ????????? ????????? HORIZONTAL, VERTICAL ? BOTH, ??? ????? ?????????????? ?????????? ?????????? ????? ??????? ?????? ?? ???????????, ?????????, ??? ????? ???????????? ?????? (?? ????? ????????????). ?? ????????? ???????? ????? ???? ? ??????? GridBagConstraints ????????? NONE, ??? ????????, ??? ????????? ???????? ????????????????? ??????? ? ?? ?????? ?????????? ?????? ? ????????? ??????.
� anchor - ????, ???????? ???????? ?????????, ? ?????? ???? ?????? ?????????? ??????? "???????????". ?? ??????? ???????? ???????? ????????? ????????, ???????, ??? ?? ?????, ??????? ?? ???????? ?????, ? ???????, ???????????? ?? ?????? ???? ?????????? WEST (???????????? ?? ?????). ???? ????? ??????????? "??????????" ?????????? ? ????? ??????.
� insets - ?????? ??? ?????? ???????? ??????????? ?????????? ??????? ????? ????????????. ??????? ???????? ? ???? ??????? Insets, ? ?????????? ???????????? ????? ???????? ??????, ?????, ????? ? ??????, ? ????????.
????, ???????? ???? GridBagLayout ??????? ????????, ? ?????? ????????? ????????, ? ?????? ????????? ??? ?? ?????????? ?????? ????????? ????????? ????? ??????????. ?????????? ??????? ??????:
// GridBagStart.java
// ?????? ????? ? ????????????? GridBagLayout
importjava.awt.*;
import javax.swing.*;
public class GridBagStart extends JFrame { public GridBagStart() { super("GridBagStart");
// ????????????????????setDefaultCloseOperation(EXIT_ON_CLOSE);
?????? ??????????? ?????? ???, ??? ?? ? ???????, ? ??? ? ????????? ????? ???????? ????????? ????????. ??? ?? ????????? ?? ??? ?????????? ?????? ????, ???????? ?? ??, ??? ?? ?????????? ??????? ?????? ???? gridwidth ? fill, ? ??? ????? ???????? ????????????????? ??????? (?????? ? 10 ???????? ?????', ??? ?? ?????? ? ???????????? ??? ???? JTextField). ????? ????, ???? ?? ???????? ???? ??????, ?????????, ??? ??? ???????? ???????????? ???? ????????? ?? ???????????? ??????? "???????", ?? ???????? ???? ??????? ??????. ?????? ?????????? ???, ??? ?? ????????? ???????? GridBagLayout ????? ???? ????????? ???????:
� ?????????? ????? ???????????????? ?????? ? ?? ?????
* ?????????? ????????????? ? ?????? ??????????
� ??? ???????? ????? ????????? ??????????? ?? ???????????? ??????? (? ?????? ?? ????????? ? ???????, ? "??????" ???, ? ? ?????????? ???? ??????? ? ?? ??????, ? ??? ?????????????, ?????????? ??????? ? ??? ????? ? ????? ???????? ?????? ????).
??? ?? ????????? GridBagLayout ?????? ?????????? ?????? ?? ????????????????? ???????? ??? ????? ???? ???? ????????? ?????????? ?????, ???????????? ??? ?????????? "???" ??????.
� weightx, weighty - ??????? ?????, ??????? ????????? ?????????, ??????? ?????????? ????? ?? ?????????? ??????? ???????? ??????, ???? ??????? ???????. ????? ??? ????????????? - ???????? GridBagLayout ???????? ??? ???????? ?? ???? ????? ? ????????? ??????? ?? ????????????? ????????. ??? ???????, ? ???????? ????????????? ???????? ???????????? ??????? - ??? 100% ?????? ????? ?????????? ???????????? ??????. ????? ?? ???? ?? ??????? ????? ???????? ???????? ?? ?????????? ????????????, ??????? ???????? ??????. ?? ? ?? ????????? ???????? ????? weightx ? weighty ????? ?????, ? ??? ??????, ??? ?????? ??????? ?? ?????? ?????? ????????????????? ??????? ?????? ?????????? ? ????????. ?????????? ????????? ????? weightx ? weighty ???????? ? ??, ??? ???? ? ??????????, ??????????? GridBagLayout, ?????????? ???? ?? ???? ??????, ? ??????? ???????? ???? ????? ??????? ?? ????, GridBagLayout ?????? ??? ????? ??????????. ? ????????? ?????? ????? ?????? ???? ?? ?????, ???????? ?????????? ??? ???????????????? ???????? ???????????, ?????? ??? ?????????? ????? ????????????? ?? ?????? ??????????, ??? ?? ??? ????? ??????????? ????????? ? ????? ?????? ???????.
� ??????, ???????, ???????, ??? ?? ?? ????????. ???? ?? ????? ????? ????????? ???? ???????? ???? ??????? ????? ?? ???????????, ??? ????? ?????????? ???? weightx ? 100%, ? ??????????? ?? ????, ????? ????? ?? ??????????? ? ???????? ?????????. ???? ??????? ?? 100% ???????, ?? ?????????????? ??????? ???? ????? ????????? ???:
� textFieldConstraints.weightx = l.Of;
� ? ????????? ????? ?????:
� ??????? ??????? ????, ?? ??????? ????????? ? ???, ??? ????????? ???? ???????? ??? ??? ??????, ? ?????? ??? ?????? ?? "???????" ? ?? ??????? ?? ?????????? ?????????? ? ??? ??????.
???? GridBagLayout?? ??? ? ??????, ? ??????????? ???????????? ???????? ????? ????????? ???. ?????? ???????? ????????? ???????? ?????? ??? ???????? ????? GridBagConstraints. ???????? ??? ????? ?? ?????? ???? (? ???????, gridwidth? weight???????? ????????????), ? ???????? ??? ??? ???????????? ? ?????????? ? ???? ???? (??? ?????????? ????, ???? ???? insets), ? ?? ???????????? ? ????????? "????????? ?????", ????? ????? ? ???? ?? ????? ????????? ????????? ????????. 2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
???? ??????????? ????? ?? � 1, ?? ??? ??????? ? ??????? ??????? (1.9) ??????? ?????? ????? ????????? ????
??????? ? 10
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??????? ???? MigLayout
???? ???? ???????????? ??????????? ???????? ?????????? ?? ?????, ???????? ?? ?????? ????????????, ???????, ?, ????????, ?????????? ????? ?????, ?????????? ??? ????????? ?????? ????????? ?????????, ???? ?? ???? ??????? ?????????? ????????????. ???????, ?? ???????????? ???????? ?????? ?????? CSS, ?????? ??? ??????????????? ???????????? ??????????? ?????? Web-???????.
???? ??? ???? ??????????? ? Java ? ??????? GridBagLayout, ?????? ?????? ???????? ???? ????????? ???????????? ??????????? ? ????? ????????, ?????????? ???????? ???????, ? ??? ??? ????? ???? ????? ?????????? ??????????? ????????. ???????????? ???????? ??? ?????? ??????.
?????? ???? ???? ???????, ???????? ???? ????? ??????? ? ??????? ?????? ????????? ????????? ????????????, ??? ? ??? ?????? ????????????? ?????????? ? ?????. ?? ??? ??????? ??????????????? ?????, ???????????? ???????? ???????? ????????-; ?????????? GridBagLayout. ????? ????? ?? ??????? ???????? ?????????? ?????? ????????? ???????? ????????? ???????????????? ???????? MigLayout.
?? ????, ????????? ???? ???????????? ?????????? ????????? GridBagLayout? ??: ???????? ?????????, ????? ???????, ??? ? ????? ?? ???????????? ????, ??? ?????? ??MigLayout. ?????? ???????? ?????????????? ???? ???????? ????? ??????? - ? bill; ??????? ????? ???????????, ??????????? ??????? ??????, ??? ??? ???????? ??????? ??????? ???????? ??????????. ?? ?????????? ?????????? ???????? ????? ??????? - add(K0Mn0HeHT, "???????? ??????"). ????? ????, MigLayout???????? ??????????? ????? ??- ????? ??????? ???????, ? ????????? ?? ???????????? ??????????? Java. ???????; -- ?????????? ?? ???????? ? ??????? ???????, ??? ????? ??? ???? MigLayout???????1 ????? ??????.
// MigLayoutStart.java
// ?????????? ? MigLayout
? ????? ???? ??????, ????? ???????????? ??? ???????, ????? ?? ????? ????? ? ??????????? ??????.
?????? ?????, ?????????? ????????? ????????? ??????? ??? ???????? ??????????. ???????, ????? ???????? ? ??? ?????, ?? ????? ????? ???????? ? ? ???????? ?????????? ??????????, ??? ?? ????????? ???????? ???????? ??? ???, ??? ???????, ???????? ????? ???? ???????? ??????? ????????? ????????????. ?? ?????? ??????? ??????? ???????????????? ??????????? ??????? ?????? ?????, ???????? ?????????? ??????????? ? ???????? ?????? ??????, ?? ??????? ??? ?? ???????? ?????? ?????????. ?? ????? ????? ipsoftware.ru?? ??????? ?????? ?? ????????? ?????????? ??????. ?????????? ???? ????????? ????????, ???????????? ??? ?????????? "usability" (? ?????? ??????????? ?????, ???-?? ????? "???????? ? ?????????????"), ?????????? ???????? ??????????, ??????????? ???????? ? ????????? ????????????. ???????? ?????????? ?????????? ????????? ???????? ???????? ???? ???????????. ???? ????? ???????????? ?????? ?????????? ????????????? ?????????.
???? ?? ????? ?? ???????, ??? ??? ?????, ???? ??? ??????, ?? ????? ????????? ????? ???????? ?????????? ????, ?? ?????? ????????????????? ???????? ?????????? ?????????? ???????????????? ???????????, ? ?????? ?? ?????????, ???????????? ????????????, ? ???????? ???????? ??? ????????????, ? ???????????? ????????, ??????? ????????? ????????? (????? ??????? ??? ??? ????????? "?? ???????? ????????????"). ???????? ????? ???????? ??????? ????????????? ??????????, ???? ??? ???????? ?? ????? ??????????????. ??? ?? ????? ?? ??? ?????? ?????, ?? ????? ????? ????? ??????????? ????????? ??????????? ?? ????????? ??????????? ? ??????? ? ??????. ???????????, ????? ?? ????? ????????????, ????????????? ??? ??????? ??????????? (???, ? ?????????, ??????? ????????, ? ????? ??????? ?????????? ?????? ?????????? ???? ????? ????? ?????), ????????, ??? ????? ? ??????? ??? ? "?????" ?????? ???? ???, ????? ????????? ??????, ? ????? ????? ???????? ??????? ???-?? ??? ??????????? ??????. ?????????????? ?????? ????????? ?????????????, ???????? ???????? ??????????? ????, ?????????????? ?? ???. 7.4.
??? ???????? ????????????????? ?????????? ????? ????? ????? ??????. ????? ?????? ???? "????????????? ???" ? ????? ??????????, ?????????, ??? ? ??? ????? ? ??? ????????? ? ???????????????. ????? ?????? ???????? ?????, ???? ?? ?????????? ???????????? ??? ????? ?????????? ??????????? ??????? ???, ?????? ??? ? ?????, ? ??????. ? ????? ??????? ???????? ????????? Java - ????? Sun (?????? ??? Oracle), ???????????? ??? ???????????? ???????????? ???????? ???? ??????????. ??????? Sun ??????? ????????? ????????????????? ??????, ????????? ?????????? ? ??????????, ? ????? ????????, ??? ??????????, ????????? ? ?????? ???????????? ? ????? ??????????????, ???????? ????????????? ??????????. ? ???? ?? ?? ?????? ????????? ??
??????? ?????????? ???????? ????? ??????????? ??????? ??? ????, ?????? ? ??????? ????????????, ??? ??????????? ??????? ????????????????? ?????? ??????????, ?? ?????????? ??? ????????? ? ?????? ??????????. ???? ?? ????????, ?????????? ???????? ????????? ???? ????????????.
???????????? ?? Sun
???????????? ?? ???????? ?????????? Java-?????????? (JavaLook&FeelDesignGuidelines) - ??? ???????? ???????? ????, ?????????? ????????? Sun/Oracle ?????????? ??? ????????????? Java-??????????. ??? ?????????? ????????????? ????? ???????? ??????????, ??????????? ??? ???????? ???????????? ??????????. ???????????? ?? Sun, ? ??? ?????, ???????? ???????? ???????????? ??????????? ?? ?????, ? ???????? ??????????, ?? ?????? ??????, ???????? ?????????? ? ???????????? ????? ????????????. ?????? ???? ?????????????, ????? ? ?????????? ???????? ????????????? ??????????????? ??????? ???. ?????? ??????, ??? ??? ???????????? ???????? ?????? ???????? ???? Metal ??? ???????????? ?? ????, ????????????? ? Swing ?? ?????????, ? ? ?????? ??????? ???????? ???? ????? ???????? ???????? ?? ???????????? ??? ?????????????.
????? ???????? ???????? ??????????? ???? ??? ?????? ??????????, ??, ??????????? ??? ??????????????, ???????? ????????? ???????????? ????? ???????????? ? ????????? ?? ?????? ????. ??? ????????????? - ????? ?????? ????????? ???????, ? ??? ??????? ?????? ???????????? ????? ????????????? ???????? ????????? ????????????? ??????????, ??? ????? ?????????. ?????? ?????? - ????????? ?????? ????? ?????????? ??? ??????????, ????? ???????? ????????? ?????????? ????? ????????? ?????? ???????????? ??? ?????? ??????????. ????? ????? ?? ? ?? ??????. ??????? ??? ??? ????????? ???????? Sun. ????? ?? ??????????, ??? ??? - ????????? ??????? ? ?????? ????? ??? ????????? ??????????. ??, ??? ?? ?????, ?? ???? ????? ??? ?????????? ?????????. ????.
� ?????????? ????? ????????? ????? ?????????? ???????)????.???? ????? ?????? ???????????? ???????? ?????? JButton, ?????? JCheckBox? ????????????? JRadioButton? ???????, ?????????? ?? ????? ????????????? ?????? ?? ????????? ????????? (???? ?? ?????? ????? ????????? ????? ????? ????????? ?????????? ?? ??????? ???????? ???? ?? ????? ?? 5 ???????? (? ????????? ??????? ????????????? 6 ????????, ?????? ??? ??? ?????????? ????????, ? ?? ??????????? ???????;; ? ??????? ??????????? ??????? ??????? ? ???? ?????? ?????, ????????, ?????: ? ?????). ????????? ?????? ? ????? ?????? - ???? ?????? ??? ??????.
� ?????????? ????? ???????? ???????????. ????? ??????? ? ???? ?? ?? ????? ?????? ?? ??????? ? ??????????????. ??????, ???? ??? ???????????? ? ?????????? ?? ?? ?????????? (?????? ?????? ???????? ?? ????? ????????????? ???????). ??* ???, ?????????? ????? ???? ?????? ???? 12 ???????? (????? ????? ???? ??????? - 11 ????????, ????????? ? ????????????? ??????????? ????????? ????? ????? ???????????, ?? ? ???? ?????? ???????? ??????????? ?? ??????????? ?????? ? ????? ?????????? ????? ????? ???, ?? ???????? ????? ?????????? ????, ??????????????? ??? ????????? ?????????, ? ?? ?? ???????.
� ???????????? ????? ????????? ???? ? ??????? ????????????. ??????? ????? ??????????, ?? ??????????? ???????? ?? ?????????? ? -???????? ??? ?? ?????? ??-^ ???????? ??? ?????? ?????. ?? ?? ??????????? ????????? ? ? ??????? ? ??????� ????? ??????? ? Swing ?????? ????????? ???????????. ????? ?????? ???????" ????? ??????????????? ?????????, ???? ?? ? ???? ?????? ?? ??????? ??? ??????????????. ?? ?????? ???? ??????? ?????????? ????? ????? ????????. ??? ????-? ???????? ??????????? ???????? ? 12 ????????.
� ?????????? ????? "????????" ????????????. ??? ???????? ???????????? ??????????????? ??, ???????, ??? ???????, ?? ????????? ? ????????? ????????? ???????. ? ??? ????????? ????????? ???? JTextField, ??????? ? ??????????? JLabel, ?????????? ???????? JProgressBar, ???????? JSIider? ?. ?. ? ????? ??????? ???????????? ??? ????????????? ??? ???????? ? 12 ????????.
� ???????????? ????? ????????????, ???????????? ????????? ?????? ???????. ????? ?????????? ??????? ????? ????????? ? ??????????. ?? ??? ??????? - ? ????? ?????????? ???? ??? ????. ????????? ???? ?????? ??? ????? ?????????? ?? ????????????, ? ?????? - ??? ????????? ?? ???? ??????. ?? ????????????? ????????? ????? ????, ? ??? ????? ???????????? ??????????? ?????????? ? 17 ????????. ?????? ??? - ???????????? ??????? ?????????? ?????? ?????????? (????????? ?????? ?????????? ?? "?????????????" ????? ??? ?????????????? ????? ??????????).
� ??????? ??? ?????? JButton. ??????-?? ??? ??? ?????????? ?????? ??????, ? ? ??? ????????? ?? ????????? ? ?????, ??????????? ????????? ?????????? ?????? ? ??????? ? ?????????, ?? ??? ? ????? ?????????? ???? ???? ??????, ?????? ?? ???? ??????. ?????????? ???????? ????????? ?????????? ?????? (?????? ?????, ?????? ??????) ?? ?? ?????? ????? ? ?????? ?? ?????? ?????????? ? ?? ????? 12 ????????. ????? ?? ?????? ???????? ??????, ? ???????????? ? ??????? ????? Melal ?????????? ?????????? ???? ????????, ??????? 14 ????????. ??????, ????? ?????????? ??????????, ????? ????????? ????? "?????" ? 12 ????????.
??? ???????? ?????? ????????? ???????????? Sun, ??????????? ? ???????????? ??????????? (??? ??????????, ??????? ?? ?????? ???????, ????? ?????? ??????????). ?? ????? ??????????? ???????????? Sun ?? ?????????????, ? ??? ?? ?????? ????? ????????? ???????? ??????????, ?????????? ????, ??? ??????? ???????????? ????????? ? ???????? ????? ? ???????? ???????????, ????? ????? ?????? ???????? ??? ???????????????? ???????????, ????? ?????? ???? ?????? ??? ?????????? ? ??????? ????? Metal, ??? ???????? ????? ??????????? ?????????? ???? ? ?. ?. ????? ??????? ???????? ???? ????????? ????????????????? ??????????. ? ?????????, ??? ?? ???????? ????? ?????? ????? (???? ???-??? ?? ???? ???????????? ?? ?????????? ? ??????, ??????????? ??????????? Swing, ? ?? ????????? ?????? ?????????? ?? ???? java.sun. com). ??????????? ???????????? ?? ??????? ????? ? ??? ?????? ????????? ??????? ?????: Windows, Apple ? ?????????, ???? ???????? ??????? ???? Swing-?????????? ? ??????? ?????.
???????? ? ?????? ??????????? ????. ??? ?????, ????????? ????? Java-?????????? ?? ??? ?? ? ??????, ?? ??????? ????, ? ????????? ?????????? ????? ???????????? ? ?? ????????????. ???????? ??????????? ????? ?????? 12 ????????, ?? ? ? ?????? ??????? ??????????? 5 ? 17 ????????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
? ?????????????? ???????? ???????? ????????????? ?????????? ??????? ????????? ??????????. ?? ???????? ?? ??????? ??????????? ???? ????? ?????????? ????? ??????????? ??????. ????? ? - ????????? ?????????? ?????? ??????????? ?, ???????????? ? ????
??????? ? 11
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????????? ?? ???????????? ? ????? LayoutStyle
??? ?? ??? ???????, ???????????? ??????????? ? ??? ???????????????? ????????? ????? ????????? ??????????????, ? ??????? ?? ?????????? ?????? ???, ? ???????? ??? ? ??????? ?????? ???????. ????????????, ???????? ???, ??? ?? ?????? ??? ??????????? ??? ???????? ???? Metal, ???????? ????????? ?????????. ????? ??? ????? ????????? ??????? ?????????? ???????? ????????????? ??? ???????? ??????????, ? JDK ?????? 1.6 ? ?????? javax.swing???????? ????? ??? ????????? LayoutStyle, ??????? ??????? ????????, ????? ?????????? ????? ???????????? ??????? ???????????? ??? ???????? ??????????. ???????? ???, ?? ?????? ?????????? ?? ?????????? ?????????? ?????? ? ????? ??????? ??????? ????? ?????????? ?????????? ?????????????, ?? ????????? ???? ?? ??? ???????? ????.
????? LayoutStyle???????? ?????????? ???? "?????????" - ?????? ??????? ?????? ???? ??? ?????????, ????????? ???? ???????? ????? ??????????? ????? getlnstance(). ????????? ????? ???????? ?? ???? ??????????? (?????? ??? ?????? ????? ??????? ??? ??????????, ????? ?? ??? ??????????????). ? ?????? ? ??????? ??????????? ??????? ????????, ????? ?????????? ??? ?????????? LayoutStyle??? ???????? ???? ?? ????????? (Metal):
// L^youtStyleTest.java
// ?????????????? ??????????? ????? ??????????
importjavax.swing.*;
import static javax.swing.LayoutStyle.ComponentPlacement. *;
public class LayoutStyleTest {
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {
public void run () {
// ??????????
JPanel panel = new JPanel();
JTextField text = new JTextField();
JLabel label = new JLabel("????");
// ?????? ?? ??????? ??????????
LayoutStyle style = LayoutStyle.getlnstance();
System.out.printlnC" + style.getContainerGap ( text, SwingConstants.WEST, panel));
// ?????????? ????? ?????????? ???????????? System.out.println("" + style.getPreferredGap(
label, text, RELATED, SwingConstants.EAST, panel));
' } )) ;
)
}
???????? ??????, ?? ??????? ??? ????? 12, ??? ????????? ? ??????????????, ??????? ?? ??????? ??????????? ??? ???????? ???? Metal. ??????, ????????? ?????????????? ?????????? ??????????? ?????????? MigLayout, ?????????? ????, ??? ?????????? ?? ????? ?????? ?? ?????? LayoutStyle. ????? ?? ??????? ????? ???????? ? ????????? ???????????? GroupLayout, ??? ?????? ??? ????? ??????? ??? ?????????? ???????????? ??????????? ? ????????? NetBeans.
? ?????, ??? ???????? ?????????? ?????? ????? ????????????? ???????????? ???????? ??????, ???? ??????? ? ????? ?????????? ??? ??????? ??????. ???????? ??????? ????????? ?????????? ???? ????????? ??????? ? "?????? ? ????" ? ????" ??????? ????.
?????????? ? ????: ????????? ?????
????????? ??????????? ??? ???????? ? ??????? ?????? BoxLayout. ?????? ???-??, ??? ?????????? ??????? ?? ????????? ??????? ? ??????????? ????? ????????, ?* ???? ??????????, ???, ??? ? ????? ?? ????? ???????????? ????????? ??????????;^.
??? ????? ?? ????????? ??? ????????? ??????? ???, ????? ??????????, ??????? ?????????? ??????? ?? ????????? ??? ???????????, ????????????? ????? ???? ????? (???. 7.5). ????? ??? ?? ???????? ????? ??????????, ??? ????????? ????????? ? ?????????.
????? ??????? - ?????????? ???????!" - ??????? ??: "??? ??? ???? ??????? ????????????????? ? ?????? ????????" ??? ?????, ?? ???????? ? ????? ???????, ??? ???????, ?? ??????????. ? ?????? ????????????? ???????? ??????? ????? ??????? ?? ???????? ?????????:
� ????????? ???????????? ???, ????? ??? ?????????? ???????? ???? ????????? ?????????? ?? ??????????? ????? ??????????????, ?? ????? ??? ???? ?? ??????? ?????????????????. ? ????? ?????? ????? ????? ????????: ????? ??????? ????????? ???, ????? ????????? ???? ??? ?????????? ???????? ????????? ?? ??????? ?????? ??????????, ? ????????? ? ???? ??????? ?? ???????? ?? ??? ? ???????. ???????? ??????????? ????????????, ??? ????? ???????????? ?????????????? "??????", ? ?? ????????????.
??? ??? ???????? BoxLayout ????????? ????????? ???????????? ??????? ????? ????? ????????????, ??????? ????? "?????" (?? ???????? ??? ? ??????? ? ????????????), ????? ????????? ?????????, ???? ????? "???????" ????????? ?????."?????????? ??????? ? ???????????? ??????????? ?? ????.
� ????? ????? ?????????? ?????? ????????? ?? ???????? ??????????, ????? ??????? ??????????? ?????????? ???? ??? ????? ????????? ????????????, ???????? ??? ???????? ????? ??????????? ?????????? ???????? (????? ?????????? ?????? ??? ?????????? ???????????? GridLayout). ?????? ???????, ??? ??????????? ???????? ??????? ????????? ? ??????????? ????? ????????????, ? ???? ? ???? ???????? ????????, ?????? ????? ???????? ??? ?? ?????????, ????????? ? ???????? ????????????. ? ????????? ? ??????? ????????????? ??????????? ?????? ???????? ? ???????????????? ???????????? ??????????? ?? ????, ?? ??? ??? ??? ?? ????????.
� ??? ??, ? ??????? ??????? 7.5 ????? ???????, ????? ????????? ???????????? ??? ????? ??????. ???????? ??????????? ? ?????????? ????????? ????? ? ??????, ????????? ????????, ??????????? ?? ?????????????? "???????". ??? ??? ??????? ??????? ???????????? ?? ??? X.
� ?????????? ????????????????? ???????????? FlowLayout????? ???????, ??? ??? ???????? ??????? ??? ?????? ??? ?????, ??? ???????. ?????? ???????, ??? ??? ????????????? ???, ?? ????? ????????? ? ????????? ????????? ? ???????????? FlowLayout: ???
?????????? ???? ????????? ???? ????? ????????? ??? ?????????, ??? ??? FlowLayout ????????? ?????????? ?? ?????? ??????, ???? ?? ?? ??????? ?????. ????? ????, ???? ???????????? ??????????? ????????? ????????? ? ???????????? ?????? ?????????? ????? ????????????, ? ????????????? FlowLayout ????????? ?????????, ? ?? ????? ??? ??????? ???????????? ???????? ???????? ?????????? ? ???????? ?????????.
????, ?????????? ??????? ??????????, ? ??????? ???????? ??????? ??????????? ???????. ??? ????? ?? ??????? 7.5, ???????????? ?????? ???? ???????????. ? ??? ?????? ?????? ???? ??? ??????????? ? ??????? ???? ?? ?????????? ? ????????????????? ???????????? ? ????????????? ?? ??????? ????. ??? ???? ?????????? ? ?????. (??????, ? ???????? ????????? ?????????? ?????? ??????????? ??? ?? "??????" ? ??????? ????? ?????? ?????? ? ??????? ?????????????.) ??? ????????? ?????????????? ?????????? ??? ????????? ?????????????? ?????? ?????? ???? ?? ????? ? ??????? ????????? ????????????? ???????? ????????????. ? ????? ?????? ??? ?????? ?????????? ???????????? ????????? ?? ????? ??????? ???.
???????? ?????? ??????????? ????? ????????????, ??????? ???????? ?? ??? ???
???????? ????????????????? ?????????? ?? ???????????? ??? ?? ????? ???? ? ?? ?? ????????? ????, ????????? ??????????? ?????????? ??????? ? ????????????? ??
� ? ???????????? ? ?????????? ?????????????? Sun. ??? ????? ????? ? ??????? ??????????? ???????:
// com/porty/swing/GUITools.java // ????? ???????????? ??? ????????????? // ???????? ? ???????? ?????? ?????????? package com.porty.swing;
}
// ????????? ????????? ?????????? ?
// ???????? ?????????? ???? JTextField
public static void fixTextFieldSize (JTextField field) {
Dimension size = field.getPreferredSize () ;
// ????? ????????? ???? ??-???????? ????? / / ??????????? ???? ?????? ? ????? size.width = field. getMaximumSize (). width;
// ?????? ????????? ???? ?? ?????? ???? // ????? ??????????? ?????? field. setMaximumSize (size) ;
)
}
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
????? ?????? ????? ?????? ??????????? z = ? - XS? (?????? ???????? ? ????????? (8)) ??? ???????? ??? ????? ??????? (10) ????? ?? ??????? (? - ?S)-1 (?????? ???????? ? ????????? (9)). ? ????? ??????? ???????? ????? ??????? ????????? ????
u-Pu = g.(11)
??????????? ????????? ???????????.
???? ???? ?(?, s) ??????????, ??
????? ???????, ???????? ??????? ?????????, ??? ??????? ??????? ????? ???? ?????????? ???????? ????? ??????? ????????.
??? ???????? ??????? ????? ????? ? ????? ???? ??????? ????????? (8), (9), (11) ?? ????????????; ?? ?????? ???? ??????????? ??????????????? ????????, ???????? ? ?????? (11) ???????? ???????? (? - AS)-1h??? ????????? h, ??????????? ??????. ? ?????????? ????? ???????????? ?????? ??????????? ???????? ?????.
??????? ? 12
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?????? ????? ????? ????????: ? ????? ?????????? ???????? ??????????, ??????? ????? ??????? ???????????. ????????, ??? makeSameSize() ????? ?? ?????? ?????? ??????????? - ?????????? ???????? ??????? ????????? ? ??????????? ????????? ?? ????. ???? ???????, ??? ? ??????????? ???????? ???????????? ???????? ??????????? ?????????? ?????? ?? ??????. ???? ????? ??? ??????????? ????? ??? ???????????? ?? ??????, ???? ????? ?????? ??????? ?????????????? ???? ????? ? ?????????? ???????????? ????????? ??? ????????? ? ?????????? ???????. ????????????? ??? ??? ??????? ???????????. ?????? ??? ???????????, ??????? ??????? ?????????? ???????? ??????????? (??????, ???????, ??????, ????????), ??? ???????? ????????? ?????????. ????? ??????? ??????????, ??????? ??? ????????? ???? ?????? ???????????? ??????? ?????? ???? ??????? (???????, ????????? ??????????, ? ?. ?.) ?????? ??????????? ? ??????? ??????????? ?????? ??????? ?????????? ????????????.
??????????? ?????? fixTextFieldSize() ?? ??? ?? ????????, ?? ??? ???? ???? ?????????? ???? ????? ????? ?????? ???????????. ???? ? ???, ??? ??? ????????? ??????????????? ???????????? ? ???? ????????? ???? JTextField ????????????? ?? ?????? ? ?????, ??? ??? ? ????????, ?? ? ? ??????, ??? ?????? ?? ??????? ? ?????????????? ?? ???????????? ???? ?????. ??? ????????? ?? ???????? ??? ???????? ???????????? BoxLayout. ??????, ??? ??????? ? ???, ??? ??? ????????? ?????????? ? Swing ???????????? ?? ???????? ?????? JTextComponent, ??????? ? ?????? ????? ???????, ????? ?????????? ??? ????????????? ????? ????? ? ????-??????????. ????? ????????? ????? ???????? ??????????, ? ?????? GUITools ? ???????? ???? ?????. ?? ????????? ????? ?????????? ???? ??????????? ?????????, ? ?????? ?????????? ?????????? ?? ??????????? ?????? (??????? ????????????? ?????? ??????).
??????, ? ???????? BoxLayoutUtils ? GUITools, ??? ?????? ??? ????, ????? ? ???? ??????????? ???????????????? ????????? ?????? ??????????? ????:
// LoginDialog.java
// ????? ???????? ??????????????
// ????????????????? ?????????? ?? ???????
// ??????????? ???? ????? ? ???????
import javax.swing.*;
import java.awt.*;
import com.porty.swing.BoxLayoutUtils; import com.porty.swing.GUITools;
public class LoginDialog extends JDialog { public LoginDialog(JFrame pareift) { super(parent, "???? ? ???????");
// ???????? ???? ??? ???????? setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// ????????? ???????????? ? ????? ????
add(createGUI());
// ?????? ???????????????? ??????
pack () ;
// ??????? ???? ?? ????? setVisible(true) ;
}
// ???? ????? ????? ?????????? ?????? ?
// ????????? ?????????????
privateJPanelcreateGUI() {
// 1. ????????? ??????, ??????? ????? ?????????
// ??? ????????? ???????? ? ?????? ????????????
JPanel main =
BoxLayoutUtils.createVerticalPanel();
// ????? ????????? ??????? ??????????? Java,
// ?????????? ???????? ??? ?????????? ??
// ?????? ???? ?? 12 ????????.
// ??? ????? ?????????? ?????? ?????
main.setBorder(
BorderFactory.createEmptyBorder(12,12,12,12));
// 2. ?????????? ????????? "??????", ?? ???????
// ??? ?????? ????????? ?? ????? ???????
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel name =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel nameLabel = new JLabel("???:");
name.add(nameLabel);
name.add(BoxLayoutUtils.createHorizontalStrut(12)); JTextField nameField = new JTextField(15); name.add(nameField);
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel password =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel pas-swrdLabel = new JLabel ("?????? :") ; password.add(passwrdLabel) ;
password.add(BoxLayoutUtils.createHorizontalStrut(12)) JTextField passwrdField = new JTextField(15); password.add(passwrdField);
// ?) ??? ??????
JPanel flow = new JPanel( new FlowLayout(
FlowLayout.RIGHT, 0, 0) );
JPanel grid = new JPanel( new GridLayout(
1,2,5,0) ) ;
JButton ok = new JButton("OK");
JButton cancel = new JButton("??????"); grid.add(ok); grid.add(cancel); flow, add (grid) ;
// 3. ?????????? ??????????? ???????? ?? // ???????????? ???????????, ????????? ?? // ????????, ???????? ?????????? ???????? // ?) ????????????? ???????????? // ????????? ??????? BoxLayoutUtils.setGroupAlignmentX(
Component.LEFT_ALIGNMENT, name, password, main, flow) ;
//?) ??????????? ???????????? ???????? // ? ????????? ????? BoxLayoutUtils.setGroupAlignmentY(
Component.CENTER_ALIGNMENT,
nameField, passwrdField, nameLabel, passwrdLabel); // ?) ?????????? ??????? ???????? ? ????????? ????? GUITools.makeSameSize(nameLabel, passwrdLabel);
// ?) ?????????? "???????????" ?????? ????????? ????? GUITools.fixTextFieldSize(nameField);
GUITools.fixTextFieldSize(passwrdField);
// 4. ????????????? "????" ????? ? ????????? main.add(name);
main.add(BoxLayoutUtils.createVerticalSbrut(12)) ; main.add(password);
main.add(BoxLayoutUtils.createVerticalStrut(17)); main, add (flow) ;
// ?????? returnmain;
}
// ???????? ????? ??? ???????? ??????????? ????
>?.; ?? ?????? ???????????? ? ??????????? ????????????? ????? ????????? ????????? ??????? ? ????????? ??? ???????????????? ? ??????????? ? ?????? ??????? ????????????????? ?????????? ?????????. ??? ????????????? ?????? ? ??????????? ??????????? : ??? - ???? ?????. ????? ?????? ?? ?????????? ??????????, ???????????? ???? ????? ?? ????????? ????? ? ???????? ? ??????? ??????. ???????? ????? ???????, ????? ??????? ????? ?????????? ????? ???????????, ? ?? ????? ??? ???????? ?????????? ??????????.
??????????: ?????? ?????
?????????? ???????? ??????? ?????????? ?????????? ? ??????? ????????? ?????? ? ????????? BoxLayout. ???? ?????? ??????????? ?????, ?????? ??????? ?????????? ????? ?????????????? ????????, ????? ??? ???????????? ?? ???? ? ???????? ?????????? ????????, ? ????? ?????? ???????? ??????????. ? ?????? ???????, ? ??? ???? ?????????, ?????????? ?? ???????? "?????? ?????". ???? ???????????? ?????? ????????? ????????? ?? ?????, ?????????? MigLayout ??? GridBagLayout (? ??????? ?????????????? ???? ???????? ???????????) ????? ???? ???????, ??? ??? ?????? ????? ??? ????????????? ???????????? ??????????? ? ?? ????????.
????????? ?????? ??????????? ??? ?? ????? ???????? ?????????? ??????? ????? ? ??????? ? ??????? ????????? MigLayout. ??? ?????, ? ??? ????? ??? ???? ? ??? ???????, ?????? ?????? ???????? ?????????? ? ??????? ?????????????? ??????, ??? ?? ?????? ?????? ?? ??? ?????. ?????? ??????? ?????? ????? ? ???????? ?? ???????????. ??? ??? ?????????:
// ???? ????? ????? ?????????? ?????? ? // ????????? ????????????? privateJPanelcreateGUI() {
// 1. ???????? ??????
//? ???????????? ?????? "????" ??????? ??????? JPanelmain = newJPanel(newMigLayout("", "[][grow]"));
// ?????? ??? ?????
main.add(newJLabel("???:"));
main.add(new JTextField(15), "gap rel, wrap rel, growx");
// ?????? ??? ?????
main.add(new JLabel("??????:"));
main.add(new JTextField(15), "gap rel, wrap unrel, growx");
// ?????? ??? ????? - ?????? ??????????? ??????? // ?????????? ?????? ??????, ????????? ?????? ?? ???
main.add(new JButton("OK"), "skip 1, split, sg buttons, align
right");
main.add(new JButton("??????"), "sg buttons");
// ?????? return main;
}
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
????????? ? ?????? ???????????? ?????.
???????, ??? ??? ????????. ????? ???? ? (?,s) ??????????? ? ???????????, ?. ?. K(s, ?) - ?(?, s). ??????????? ?????, ??? ?(?, s) ? ? ??????????. ????? ?????????? ?????? ????????????????? ??????? ??????????? ??????? <?? ????????? Q:
??????? ? 13
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??? ????????? ?? ???????? ??????????? ? ????? main(), ??? ??? ??? ????????? ?? ?????????? ?? ???????? ? ??????? ?????????????. ???? ??????? - ????? ??????? ????? ?????????? LoginDialog2. ? ??? ?? ????? ?????? createGUIQ ????????? ????????? ???????
???. ? ?????? ? ????? ???????? ????? ? ??????? ?????? ?????, ???????? ????????????? ? ??????? ????????? MigLayout, ???? ?? ?????? ??????? ????? ?????????? ?????????, ? ??? ????? ? ????????? ????, ??? ????????? ????????????? ????????? ?????????? ????? ???????????? ? ????? ????????? ??????????? ? ????. ???? ?? ????????? ??????, ??????????? ????????? MigLayout, ?? ?????? ??????? ?????? ??? ???????, ???????????? ???????? ???? ????????? ??? ???????? ???? ?????? - ?????? ???????? ??????? ?? ??? - ?? ????? ?? ?????? ??????, ? ??????? ???????, ??? ?????? ?????? ???? ????????? ?? ??????? ???? ???????? ?????? align. ???????? ??????, ?? ??????? ??????????? ?????????? ?????????? ????.
?????? ??????? ?. ??????? ????????????? ??? ?? ???? - ???????? MigLayout?? ????????? ?????????? ??????????? ?????????? ????? ????????????, ? ?? ??, ??? ????????????? ??? ???????? ???? Metal. ? ????????, ?????? ????????? ? ???? ???, ?????????? ????? ????????? ???????, ???? ??????????? ? ???, ??? ?????????? MigLayout. ??????????? ?????? ????? ??????????? ? ? ??????? ???????????? ????????? GridBagLayout. ?????? ??? ? ???? ?????? ????????? ??????? ??????? ? ???????????.
?? ????? ??????, ??? ??????? ?????? ????? ?????? ?????????? ? ???????? ???????, ??? ??? ?????????? ? ?????? ? ???????? ????? ? ???????. ???? ??????????? ?????, ? ??? ?? ?????? ????????? ?? ?????, ??????? ?????????? ?? ??? ? ?????? ????? ????? ???? ??????? ?????? ? ???????????? ? ?????????? ???, ??????? ?????? ????????? ? ????????????. ? ????? ?????? ? ????? ??????? ??????? ??????? ????????????, ??? ????????? ????? ??????? ????????? ????????????. ? ????????, ??? ???????? ? ????????????? ??????????? ??? HTML-???????: ? ??? ???? ??????? ???????????? ??? ???????????? ????????? (<table>), ??? ????????? ????? (<div>??? <span>).
??????
???????????? ??????????? ? ?????????? ?????? ?????????, ???? ???????????? ??? ????? ????????? ???????????? ?????? ??? ????????? ? ??????????. ??? ???? ? ??? ??? ????????? ???????????? ???????? ???????? ??????????????? ??????????, ????????? ??????? ????? ???? ???????????? ? ?????? ?? ?????? ?? ??, ???? ?? ????? ?? ??????? ?? ???????? ????????? ????????????. ??? ?? ?????, ???? ??????? ????????? ???????, ??????? ????????????? ??????? ? ???????? ????????? ? ?? ???????? ? ????- ??? ? ???????????? ??????????? ??????????, ????? ?????? ? ?????? ???????? ?????: ???????????? ???????????.
public class LoginDialog extends JDialog { public LoginDialog(JFrame pareift) { super(parent, "???? ? ???????");
// ???????? ???? ??? ???????? setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// ????????? ???????????? ? ????? ????
add(createGUI());
// ?????? ???????????????? ??????
pack () ;
// ??????? ???? ?? ????? setVisible(true) ;
}
// ???? ????? ????? ?????????? ?????? ?
// ????????? ?????????????
private JPanel createGUI() {
// 1. ????????? ??????, ??????? ????? ?????????
// ??? ????????? ???????? ? ?????? ????????????
JPanel main =
BoxLayoutUtils.createVerticalPanel();
// ????? ????????? ??????? ??????????? Java,
// ?????????? ???????? ??? ?????????? ??
// ?????? ???? ?? 12 ????????.
// ??? ????? ?????????? ?????? ?????
main.setBorder(
BorderFactory.createEmptyBorder(12,12,12,12));
// 2. ?????????? ????????? "??????", ?? ???????
// ??? ?????? ????????? ?? ????? ???????
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel name =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel nameLabel = new JLabel("???:");
name.add(nameLabel);
name.add(BoxLayoutUtils.createHorizontalStrut(12)); JTextField nameField = new JTextField(15); name.add(nameField);
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel password =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel pas-swrdLabel = new JLabel ("?????? :") ; password.add(passwrdLabel) ;
password.add(BoxLayoutUtils.createHorizontalStrut(12)) JTextField passwrdField = new JTextField(15); password.add(passwrdField);
// ?) ??? ??????
JPanel flow = new JPanel( new FlowLayout(
FlowLayout.RIGHT, 0, 0) );
JPanel grid = new JPanel( new GridLayout(
1,2,5,0) ) ;
JButton ok = new JButton("OK");
JButton cancel = new JButton("??????"); grid.add(ok); grid.add(cancel); flow, add (grid) ;
// 3. ?????????? ??????????? ???????? ?? // ???????????? ???????????, ????????? ?? // ????????, ???????? ?????????? ???????? // ?) ????????????? ???????????? // ????????? ??????? BoxLayoutUtils.setGroupAlignmentX(
Component.LEFT_ALIGNMENT, name, password, main, flow) ;
//?) ??????????? ???????????? ???????? // ? ????????? ????? BoxLayoutUtils.setGroupAlignmentY(
Component.CENTER_ALIGNMENT,
nameField, passwrdField, nameLabel, passwrdLabel); // ?) ?????????? ??????? ???????? ? ????????? ????? GUITools.makeSameSize(nameLabel, passwrdLabel);
// ?) ?????????? "???????????" ?????? ????????? ????? GUITools.fixTextFieldSize(nameField);
GUITools.fixTextFieldSize(passwrdField);
// 4. ????????????? "????" ????? ? ????????? main.add(name);
main.add(BoxLayoutUtils.createVerticalSbrut(12)) ; main.add(password);
main.add(BoxLayoutUtils.createVerticalStrut(17)); main, add (flow) ;
// ?????? return main;
}
// ???????? ????? ??? ???????? ??????????? ????
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??????? ? 14
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????? 8. ????? ??????????????? ??????????
?????????? ????????????????? ?????????? ????????? ????? ??????? ????????? ?? ??? ?????: ???? ?????????? ??????????? ??? ????????? ?????????? ?? ???????????? ? ??? ?????? ?????? ?????????, ? ?????? ?????? ??? ?????????? ?????? ????????????, ??????????? ??? ??????????????? ??????????? ?? ?????????? ????????? ? ???????, ??????? ?? ??????. ? ???? ????? ?? ????? ???????? ?????? ? ???????????, ??????????? ???????????? ???????? ??????????????? ??????????. ??? ????????? ?????? ? ??? ???????? ???????????? ???????????? ? ???????????, ??? ??? ????? ?????????? ??????????? ???? ????????? ??? ???.
? Swing ? ???????????, ?????????????? ???????????? ??????????? ?? ?????????? ? ??? ???????, ?????? ????? ????????? ??????? JLabel, ?????????????? ???? ???????? HTML ? ??????????? ??????? ????? ????????? ??????? ? ??????. ? ??????? ?????????? JLabel ????? ???????? ???????????? ??? ??? ??????, ??????? ???? ????????? ????? ????. ?????, ??? ?????? ??????? ?????????? ? ????? ???????? ?????????? ? ?????? ?????? ??????? ???????????? ??????????? ????????? JToolTip, ?????????? ? Swing ??????????? ?????????????, ???????????? ??? ?? ????????? HTML. ???????? ?????????? ???????????????? ??????????? ???????? ???????????? ????? ??????????? ??? ??????????? ?????? ? ????? ???????. ???????, ??? ?????????? ??????????? ?????????? ? ???????? ??? ???????????? ???? ?????? ????????? ?????. ??? ??? ?????????? ?? ? ?????????? ? ?????? ?????.
??????? JLabel
?????????-??????? JLabel ???????????? ? Swing ??? ?????? ????????????? ??????????, ???? ????? ????????? ?? ????????? ?????? ? ???????, ???????? ???????? ???????????? ???, ??? ?? ????????. ???? ???????, ??? ??????? JLabel ??????????? ? Swing ????????? ?? ?????? ????: ?? ????????? ??? ?????? ???????????????? ?????? ? ?????????? ?????, ??? ????????? ??????? ? ????????, ? ??? ??????? ?????????? Swing, ????? ??? ??????? ? ???????, ?????????? ????????? ??????? ??? ?????????? ????? ?????????: ??????? ???????? ? ????? ??????. ??? ????????? "??????? ???????" ??????????. ??? ??? ??????? ?????? ???????????? ??????? JLabel ? ?????????? ??? ?? ??? ???????? ??? ?????????? ????????????? ????????????? ??????????. ????? ????? ?????? ???????? ???????????? ?????????? ?? ????? ?????????? ?????????? ????? ???????????? ????????? ??????????? ??????? JLabel.
?????? ?? ? ???????? ???????????? ??????? JLabel ?? ???????????? ?????? ??????????? (?????? ? ???????) ???????????? ???? ?????. ????? ? ????? ???????? ??? ??????? ???????????, ?? ??????? ????????? ????? ? ?????? ?????????? ???????????? ???????. ?????????? ??????:
'// Labels, java
// ????????? ??????????? ????????
importjava.awt.*;
import javax.swing.*;
public class Labels extends JFrame implements SwingConstants { public Labels() {
super("Labels");
// ??? ???????? ???? ??????????? ?????? setDefaultCloseOperation(EXIT_ON_CLOSE);
// ????? ??????? ??????? JPanel contents = new JPanel();
JLabel 11 = new JLabelC'Bauie ???:");
JTextField name = new JTextField(20); contents.add(11); contents.add(name);
// ??????? ?? ???????
JLabel 12 = new JLabel(new Imagelcon("monkey.gif")); adjustLabel(12);
12. setHorizontalAlignment(LEFT); contents.add(12);
// ??????? ? ????????????? ????????????? JLabel 13 = newJLabel("????? ? ??????", newImagelcon("bulb.gif"), RIGHT); adjustLabel(13);
13. setVerticalTextPosition(BOTTOM);
13.setHorizontalTextPosition(LEFT); contents.add(13);
II ????? ???? ?? ????? setContentPane(contents); setSize (320, 300); setVisible(true);
}
// ????? ?????????? ??????????? ????????? ??????? privatevoidadjustLabel(JLabel 1) {
1.setOpaque(true);
1.setBackground(Color.white);
1.setPreferredSize(new Dimension(250, 100));
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() { public void run() { new Labels(); ) });
}
}
??????? JLabel????????? ??????? ?? ????? ?????, ??????, ??? ??? ???????? ??????. ????? ?/??? ?????? ???? ????? ???????? ? ???????????? ???????, ? ???????? ??????? ???? ????????????? ?????? ?? ??? ?????? ?????, ?? ????? ????? ?????? ??? ???????? ????? ??? ?????? ?????, ????? ???????? ???????, ??????????? ?????????? icon? text? ??????? ??????????????? ??????? get/set(??? CBottcrBaJavaBeans). ?? ????? ?????? ???????? ????? ?????? ??????, ????????? ????? setFont() (? ??????? ?? ????? ?? ??????, ? ?? ???????? ??????????? ?????, ??????????????? ?????????? ???????? ????). ? ????? ??????? ?? ??????? ????, ? ?????? ??????????? ???????? ????????? ????????? ????????. ?????? ??????? - ????? ??????? ? ???????? ???????????????? ???????: ?????? ????? ??????????? ???????????? ????? ????????? ?? ?????. ????? ? ??? ???? ?????????? ????????? ????????? ????, ? ??????? ?????????? ??????: ??????? ?????????, ??? ???? ???????????? ?????? ?????????. ???? ????? ??? ??? ? ????????????. ????? ?? ????????? ????? ?????? ???????? ???????? JLabel, ???? ?? ??????? ? ?????? ? ?? ???????, ? ? ???????.
?? ??????, ??? ??? ???? ???????? ?????????? ??????????????? ????? adjustLabel(), ??????????? ??, ??-??????, ???? ????????????? (???????? opaque??????????????? ? true), ??? ???????? ??????????, ????? ???????????? ???????? ??????? ?? ?????? ? ????????- ???? ????????????? ???? ????, ?, ??-??????, ???? ????? ?????? ?? ?????? ?? ???????? ???????, ??? ?????????? (?????? ??? ?? ?????? ??????? ????????? ? ????????????). _1?? ???? ????? ???? ?????, ????? ????? ?????? ???????? ???????, ?? ??? ?????? ????? ??????????? ??????? ?????? ?? ?????????? ? ?????????? ??????, ?? ???? ???????? ? ?????? ??????????). ??? ???????? ??????? ???????????? ??????????????? ????? Imagelcon, �::????? ?? ?????? ??????? ?????????, ???? ?? ?????????? ????, ??? ??? ????? ??????? -^?????? ????? ? ????????????. ????? ????, ??? ?? ? ??????? ???????? ??????? ?????
- ?????? ?? ?????, ?? ?????? ?? ???????????? ???????????? ?????? ??????? ? ??????- ?????? ???? ?????. ??? ????? ???????????? ????????, ????????????? ? ????. 8.1.
?????? ????? ???????, ??? ???? ????????? ?????? ???????????? ?????? ?????? ?????????, ?? ????????????? ???????????? ??????????? ????? ???????, ?????? ????? ??????? ?????? ?????? ?????, ??? ?? ?????, ??? ? ?????? ????????????? ????????? ???????????? ????????? ?????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
???? ????????? ??????? (???????, ???????????? ?? ????????? ???? ????, ????????? ????????????).
????? ???????, ???????? ????????? ????????. ?????? (1) ????? ????? ?? ????? ?????? ???????, ?????? ??? ???? ??????? ?????????? ????
?????? 6. ??????????? ?????? ??????? ????????? (1) ????????? ???? ???????, ????? ??????? ??????????? ????? ??,???????? ?? ????, ? ??????????? ????? ??, ?????? ????.
??? ???????? ?????? ?????, ? ????????? ? ??????? ????????????? ??????????? ??????????, ???, ??? ???????, ? ??????? ?? ?????????, ????? ????????? ????????? ????????. ??????? ????????? ??????? ?(?): ??
??????? ? 15
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????? ????? ???????? (???? ?? ? ?? ??????? ????? ??????? ? ???????), ??? ??????? JLabel ????? ???? "????????????", ??? ?? ??? ? ??????? ????? ?????? ??????????? ????? ??? ??????, ???? ???? ??????? ????? setEnabled(false). ??? ????????? ??????? ?????????? ??????? ???????????????: ???? ?????-?? ??????? ?????????? ?????????? ??????????? ??? ???????? ??????????, ???? ???????. ???? ? ??????? ???????????? ??????, ?? ? ??????????? ????????? ?? ? ??????? ???????????? ??????? ???????????1 ??????????? ? ?????-????? ?????:. ???????, ?? ?????? ?????? ??????????? ?????? ??? ???????????? ?????????, ?????? ????? setDisabledlconQ.
?????? Icon
?????? ??? ??? ???????????? ??????? ? ????????? JLabel ?? ??????, ??? ??? ???????? ??????? ????????????? ????? Imagelcon. ?? ????? ???? ? ?????????? Swing ?? ?????? ??????? ?? ???? ??????????? ?????????? ??????????? ????????? Icon, ? ????: Imagelcon - ??? ????? ?????????? ?????????? ? ???????????? ? ???????? ??????2. "????-
1???? ?????? ??????????? ?????????? GrayFilter, ????????? ? ?????? javax.swing ? ??????????- ?? ????? ???????????? Swing ? ?????????? ??????? Icon, ????? ????????? "???????????" ?????? ??????? (? ??? ?????? ???? ?? ?? ?????????????? ??????????? ?????? ??????????????). ????????.:- ???? ?????? ?????? ????? ? ????????: ??????? ??????????? ????? getDisabledlmage() ????????- ????????? ???????? ?????-????? ??????? ?????? ???????????.
? ? ?????? ?????? JDK ???????????? ??????? ??????????? JPEG, GIF (? ??? ????? ? ?????????????) ? PNG, ?? ???? ??? ????? ?????????? ??????? Web. ?????? ???????? ????? ??????? ?? ?????? PNG, ??????? ?? ????? ??????? ? ??????????????? ? ????????? ???????????? ?????- ????? (????????? ??????? ????????????).
?? ?? ? ?????????? ????? ?? ???????????? ??????????? Image?" - ???????? ??. ??? ???? ? ???, ??? ????????? Icon ????? ????? ??????????? ??????. ??? ????????? ???????????? ? ???????? ??????? ?? ?????? ??????? ??????????? ?? ?????? (??????? ????? ??????? ? ?????? ????????), ??? ???????????? ????? ? ????????? (????????, ? ??????? ?????????? Java2D). ????? ??????? ???????????? ??????? ???????, ? ??????? ?????? ?????. ? ???????, ??????????? ??? ??????????? ?????? ? ????????, ???????????? ? ???????????? ?????? ? JDK ??????? ????? Swing, ???????? ?????? ??????? ? ???? ??????? Icon, ? ?? ???????????? ? ???? ???????????.
??????? ???? ?????? Icon, ????????? ?????? ??????????? ???????? Java, ????????:
// RedBullet.java
// ???????? ???????????? ??????
importjavax.swing.*;
import java.awt.*;
public class RedBullet implements Icon {
public int getlconWidth() ( return 16;
}
public int getlconHeight() { return 16;
}
public void paintIcon(
Component c, Graphics g, int w, int h) { g.setColor(Color.red); g.fillRect (0, 0, 16, 16);
}
}
????? ?? ??????? ?????? ? ???? ???????? ????????. ?????? ??? ?????? ????????? ?????? ??????? ??????, ? ??????? ?????? ?? ??????? ???? ??????. ?????? ????? ?????? ????? ???? ??????? ? ??????????? ???????? ??????????? ?? ?????. ???????????? ????? ?????? ????? ? ????? ??????????? Swing ? ?? ?????????? (?? ???? ????? ?? ????). ??? ?? ?????, ???? ???-???? ???????????? ????? Imagelcon. ?? ????????? ????????? ??????????? ??????????????? ??????? ?? ?????, ???????? ???????, ????????? URL- ??????? (UniformResourceLocator - ??????????????? ????????? ???????), ? ???????? ????????? ??????????? ???? ?? ??????? ??????3. ? ??????? ?? ???????????? ?????? ???????? ??????????? getlmage() ?? ?????? java.awt.Toolkit, ????? Imagelcon ?????? ????????? ??????????? ????????? (????? getlmage() ????? ?????????? ??????????, ???? ???? ??????????? ????????? ????????, ? ?????????? ?? ?????? ????? ????????? ?????? ?? ??, ??? ?? ????????). ??? ????? ????????????? ??????????? ????? MediaTracker, ??????? ? ????????? ?????? ???????? ?? ???????????? ??????????????. ???????? ???? ???????, ??? ? ???? ? ??????????? ??????????? ?????? ????, ??????? ????????????? ?????????? ???????????? ???? ??????? ?????????:
new Imagelcon("data/resources/menu");
3 ??????????? ??????? ??????????? ?? ?????? ??????? ?????? ??????????? ????????? ??????????????? ?????????? ? ???? ??????? ???????????? JAR-?????, ??????? ?? ???????? ????? ???????? ?????? ? ???? ????????? ???????.
?? ????? ?? ????????? ???? ?????????? ?? ?????????, ????? ????? ?????? ????????? ?????????? ?????? ? ?????? ? ??????? ??? ?? ???????? ????. ? ?????????? ?? ??? ?? ??? ????? ???????????? ?????? ??? ????? ???????????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??? ??????? ??????????????? ?????? ????? ????????? ????? ????????????? ?? ????????. ????? ?? ????????? ??? ??????????????? ?????? ?????? (2) ? ??????????? ?????? ??????. ????? ?????????? ???????? ??? ?????? ????????? "???????" ???????, ??????? ??????? ????? "??????" ? ?{?).
?? ??? ??????? ????????? ??????? ????????????? ?? ??????? ??????? ?????? ???????? ?????????.
??? ??????? ???????????? ????????? ?????????? ??????? ???? ? ???????? ????? ??????? ? (1) ?????? ?????????? ?????????
??????? ? 16
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????????????? HTML
??????????? ? ??????? ??????? JLabel ???????? ???????????? ????????? ??????? ? ??????, ??? ??????? ?????? ???? ??????, ????? ? ???? ???? ??????? ????????? ??? ????? ?????????? ?? ?????? ????? ????????????? ??????????. ???????, ?????? ????????, ????? ???????????? ??????? ???? ?????? ??????? ? ??????? ??????? ????????, ? ???????, ???????????? ????????? ???????? ????????????? ????????????? ? ????? ??????? ?????????? ??????? ??? ?????????? ?????.
? ?????? Swing ?????? ????? javax.swing.text.html, ?????????????? ??? ????????? ??????????? ???? ???????? HTML ?????? 3.2. ????????????? ????? ?????? ?? ????? ????????? ?????? View (?? ?????????? ??? ? ????? 16, ??????????? ????????? ???????????? Swing), ??????? ????? ???????????? ??? ?????? ?????? ????? ?????????. ? ????? ??????? JLabel ? ???? ??????????? ???????? ????????? ?????? View, ??????? ? ????????? ????? ?????? ?? ????? (??? ?????????, ?? ?????????? ????, ???? ???? ?? ???????? ??????? ?????, ? ?? HTML). ????? ??????? ?? ??????? HTML-?????, ?????????? ??????? ? ?????? ?????? ??? ????????????? ??????? - ??????? <html>. ?????????? ??????:
// HTMLabel.java
// ????????????? ? ???????? ????? HTML
import javax.swing.*;
public class HTMLabel extends JFrame { private String htmll =
"<html><b>CnaBa</b><font size=5 color=red> HTML"; private String html2 =
"Chtmlxfont size=4 color=blue>" +
"<?1>??????: <?>????<?>???" ;privateStringhtml3 =
"chtmlxbody bgcolor=whiteXh2>JIio6oft ???? ????"; private String html4 =
"<??1><?2>???????????: <img src=\"file :monkey. gif \">"; public HTMLabel() {
super("HTMLabel") ;
// ??? ???????? ???? ????? setDefaultCloseOperation(EXIT_ON_CLOSE);
// ????????? ??????? JPanel contents = new JPanelO; contents.add(new JLabel(htmll)); contents.add(new JLabel(html2)); contents.add(new JLabel(html3)); contents.add(new JLabel(html4));
// ??????? ???? ?? ?????
add(contents); setSize(400, 300); setVisible(true);
}
public static void main(String[] args) {
SwingCJtilities.invokeLater ( new Runnable() { public void run() { new HTMLabel(); } });
}
)
? ??????? ?? ????????? ? ???? ? ?????? ?????? ???????, ?????????????? ??????????? ??????????? ????? HTML. ??????? ??? ????????????? HTML - ???????, ??? ?????? ? ??????? ?????? ?????????? ? "?????????" ???????? <html>, ????? ??? ???? ????? ???????? ? ???? ???????? ??????. ?? ????????????? ????????????? ??????????? HTML: ????????? ????? ? ??????? ??????, ?????? ????? ??? ???? ???????? ? ?? ??????, ? ???? ?????? ???????????. ?? ?????? ??????, ??? ???? ?????? ????????? ????????? ? ??????? JLabel ????????? HTML ???????????? ?? ??????. ??? ??? ??? ????????, ????? ??????????, ???????? ????????? ? ????????.
??? ???????????, ????????? ? ???????????? ????? HTML ?????? 3.2, ?????????????? ?????????? ? ??????? ????????? View. ??? ?????, ?????????????? ? ???????????, ?????? ??? ?????? ? ???? ???? ???????, ??? ?????????? ???? HTML ? ???????? ????????? ??????????? ?????????? ?????? ?????????? URL-??????. ??? ????? ???? ?????? ?????? ?? ????????? ?????? (?????? ???????? ????? ?? ?????? ? ???????????? ???????? ???????? ????????????, ??? ?? ??????? ??? ? ???????, ? ? ??????? ?????????? ?????, ????? ??? file:C:/images/pub/img.jpg) ??? ?????? ??????? ??????, ???????? http://somehost/dir/image.gif. ???????, ??????????? ? ??????? ??????????? ????? HTML ??????? ??? ?? ?????, ???? ??????????? ??? ?????????????. ???? ? ???, ??? ?????????? ?????? ?????????????? ? ???? ????????????? ????????? JAR-?????, ? ??????? ? ??? ????? ???????? ? ???????????. ???????? ??????????? ?? ?????? ?????????? ??? ?? ????? ?????? ?????????, ??? ??? ??? ?? ?????? ???? ?????????? ??????????? ???????? JLabel, ??????????? ???????? ?????? ? ??????????? ?? ???????????? ??????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??????? ? 17
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????????? ????????? JLabel ????? HTML ???????? ?? ? ???? ?????????????? ??????????????? ????????, ???????????? ??????? ????? ??? ??????????. ????????????? ???????, ????????? ?????? ? ????????????, ????? ?????, ???????????? ? ????????????? ??????, ??????????? - ??? ? ??? ? ?????. ?????? ???????? ?????????? ????????????? HTML ?? ?????, ?????? ??? ??????? ?????? ???????? ???????????? ???????? ??????????, ? ?? ????????? ??? ???????? ???????? ??????. ? ???? ?? HTML-????? ????????? ?? ??????? ? ???????????? ?????, ????????? ???????????? ?? ????, ??? ???????? ?? ??????????? ?????????, ? ??? ??? ????? ???????? ? ??????????? ????????? ????? ?????? ????????????? ???????? ???? ? ?????????? ????????????, ??????? ?????????? ????? ?????, ??? ?? ?????? ????????.
??????? ? ???????
??????? JLabel - ????? ?? ?????????, ??? ? ?????????, ?????????????? ?? ???????? ?????? JComponent, ??????? ??? ????? ???????????? ????? ???? ????? ??? ???? ??????????? ???????: ???? ???? ???????? ? ??? ??????????????? ??????????. ?? ???? ????? ??????? ?????? ???????? ???-?? ????????????, ? ?? ???????????? ???????, ????? ?? ??????? ??? ? ??????????? (??????? ??????? ???????? ?????????? ? ????????? ???????????????). ???????????? ??????, ??? ??????? ??????? ??????????, ? ?? ???????? ?? ???-?? ???????. ???? ??? ????? ????????? ? ?????????? ?????-?? ???????, ??????????? ?? ?????????? ? ??????? ?????? ??? ????????????? ??????????, ? ???????? ???????????? ????? ?????????? ?????????-??????????? JXHyperlink ?? ?????? ?????????? SwingX.
??????? ????? ?? ????????? ????? ?????, ?? ???????? focusable ?? ????????? ??????????? ? false. ???? ?????? ?? ?? ?????? ????????? ????????????? ??????????? ???????????, ? ??????? ??????? ????? ????? ??????, ??????????? ????????? ???? ?? ????? ??????.
??????? ? ?????????
????????? Swing ???????? ? ??????? JLabel ??? ???? ???????????, ??????????? ???????? ???????????????? ?????? ????????????????? ??????????. ??????? ????? ???????????? ????????? (mnemonics) ??? ?????? ???????????, ??????????? ???????????? ?? ??????????????. ????????? - ??? ??????????? ???????????? ?????????? (?? ??????????? ???????? ????????? ??????? Alt ??? Ctrl ? ????? ???????), ??????????? ?????? ???????????? ????????? ????????? ??????????, ????????, ?????? ??? ????????? ????. ? ??????? ???????????, ????????? ?? ????????? ???????????, ???????? ?????? ????????? (???????, ????????, ???????? ????? ??????) ????? ???? ???????????, ? ? ????? ????????? ????????? ????? ???????. ????? ????, ??? ?????????? ??? ????????????? ? ????????????? ?????????????, ??????? ?? ????? ???????????? ?????. ?????????? ???????? ?????? ??????? ????????????? ?????? ? ?????????? ?? ???? ????? ???????????.
????????? ??????????, ???????? ??????, ???? ???????????? ?????????, ??????, ????? ??? ????????? ???? ??? ?????????????? ??????, ????? ???????????? ???????????? ??????????, ?? ?????? ????????????? ? ??? ???????????? ?? ? ?????????. ????? ?????????? ??????? ? ?????????? ????? ??????????: ???????????? ?????? ??????, ??? ???????????? ?????? ?????????, ?????? ??? ?????? ????????? ? ?????? ??????? ??????????????.
????????? ???????? ??????????? ? UI-????????????? ??????? JLabel, ?????? ??????? ??? ???????? ?????????: ????? ?? ????????? ???????, ??? ?????? ?? ???????????? ?? ??? ?????? ????????? ?????????? ??????????, UI-?????????????, ??-??????, ???????????? ?????? ????????? ??? ?????????? ???????, ??-??????, ???????????? ? ???
?? ??????? ??????? ?????? ???????????? ??????????. ??? ???????????? ?????????? -^????? ?? ????????? ???????? ????? ????? (????? ??????????? ?? ???????, ???? ?? ?????????? ???????), ??? ?????????? ?????? ????? ????????? ? ??????????, ??? ??-
- : ???? ???? ?????? ?????????, ? ????? ??????? ????? ???????????? ? ??????? ????????? (??? ?????? ?????). ??????? ?????? ??? ? ????????:
// LabelMnemonic.java
// ????????????? ???????? ??? ?????? ???????? importjavax.swing.*; importjava.awt.*;
(setLabelFor()), ? ????? ?????? ?????????, ??????? ???????? ?????? ? ??????????? ???????? ? ????? ????? ?????? (setDisplayedMnemonicO). ???????? ??????, ?? ???????, ??? ??????? ???????????? ????????????, ????? ???????? ????? ?????????????? ????????? ???? ??? ??????? ??????? ????????? (???? ????? Alt+??????, ? ????? ?????? Alt+?). ???????? ????????JDK 1.6 - 1.7 ????????????? ??????? ??????????????'1, ??? ????????????, ??? ??? ? ?????? ??????? ????? ?? ??????? ?????? ????? ?? ????? ??????.
????? ???????????? ??? ?????????? ???????, ??? ????????????? ?????? ???? ???????? ???????????, ??????? ????????????? ???? ??????????? ?????????? ???????.
??????????? ?????????
??????????? ????????? (tool tips) - ?????????? ??????? ???????????? ????????????????? ??????????, ? ?? ???: ??? ??????? ???????? ???????????? ? ??????????? ?????? ? ????? ???????????. ??? ????????? (???? ?????, ???? ? ?? ???????????) ????????? ???????? ??????????? ?????? ??????????, ???????????? ????? ? ??????????? ? ??? ??????, ???? ???????????? ????????? ??????????? ?? ??? ????????? ????. ???????? ??????????? ????????? ?????? ??????????? - ??? ??????? ???????? ?????? ? ?????, ???????? ??????? ???????????. ?????? ?????????? ? ????????????? ???????????? ????? ????? "?? ????" ??????, ??? ???? ???????????? ??? ??? ???? ??????? ??????????, ? ?????? ?????? ??????. ?????? ????????, ?? ??????? ???? ?????? ??????, ?????? ?????????? ??????????? ??? ?????????5. ? Swing ??? ???????? ?????, ?????? ??? ????????;: ????? ???????? ?????? ???????? ?????????????.
4? ?????????, ?????? ??? ????????, ?? ?? ??? ?????? ? ????
5?????????, ??? ?????? ? ??????? ????????, ??? ?????????? ? ??????????? ?????????? ?? Web ?? ????????? ?????????, ????? ???????????? ??????? ???????????? ?? ???????? ???????????. ?????????????, ? ??????? ??????, ? ???????? ???? ????? ??? ??? ????????, ????????????".??????? ????. ????? ???????? ? ???, ??? ???? ???? ????? ??? ??????, ????? ??????? ??????? ? ??????, ??? ? ????????? ???????.
????? ????????? Swing ????? ???????? ??????????? ??????????, ?????? ??? ????????? ?? ???????? ? ??????? ????? ?????????? JComponent. ????? ?? ????????? ????- setToolTipText(), ????????? ???????????? ???? ? ?????? ToolTipManager, ??????? ???????? ?? ?????????? ????? ?????????. ????? ToolTipManager?????? ?? ????????????? ???? ?? ???? ?????????????????? ? ??? ??????????? ? ??? ??????????? ??????? ??????! (????????? ????????? ????) ??????? ????????? ?? ?????. ?????????? ?????? ? ???????????:
// ToolTips.java // ??????????Swing import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class ToolTips extends JFrame {
public ToolTips () (
super("ToolTips");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// ??????? ????????? ?????? ? ???????????
JButton ? = newJButton("????");
bl.setToolTipText("??? ?????? ??????");
JButton ?2 = new JButton() {
public Point getToolTipLocation(MouseEvent e) { return new Point{10, 10);
}
public String getToolTipText(MouseEvent e) { if ( e.getY() > 10 ) {
return "?????? ????? ??????!";
)
return super.getToolTipText(e);
}
} ;
b2.setText("???");
b2.setToolTipText("<html><h3>3TO ?????? ??????.<ul>" +
"???: <?>?????? ?? ??????<?>?? ?? ????? ??????!");
JPanel contents = new JPanelO; contents.add(bl); contents.add(b2);
// ??????? ???? ?? ????? add(contents); setSize (400, 150); setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable(J { public void run() { new ToolTips(); } });
}
}
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??????? ? 18
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?? ????????? ? ???? ??? ?????? JButton, ? ?????? ??? ?????? ?? ??? ????? ?????????, ??? ????????????? ???????? ? ??????????? ?????? ? ?????? ToolTipManager. ??? ?????? ?????? ?? ?????????? ??????? ?????, ??????? ???????? ? ???? ???????????? ?????????, ????? ? ???? ??????? ??????? ?? ??????? ???????? ???? ? ????????????. ?? ??? ??? ?????? ?????? ?? ?????????? ??? ???????? ??? HTML-????? (???????, ??? ???????? HTML-?????? ??????? ? ???????? <html>), ? ????? ? ???, ??? ?? ??? ? ? ?????? ? ?????????, ?????? ???????????? ???????????. ?? ?????? ????????????? ????? ??????????? HTML ?????? 3.2 ??? ???????? ???????, ?? ?????? ??????? ??????, ??????????? ????? "?? ????". ? ??????? ?? ????????? ????? ????????? ? ????????????? ?????? - ???
???????? ????? ?????????????? ??? ???????????? ???????????? ??????????. ? ?????? ???????, ????? ??????? ? ???, ??? ??????? ? ????????? ?????????, ?????????? ?????????????? ????? ??? ????????? ????????? ???? ?? ????? ??????????, ????? ?????????? ???????????? - ????????? ???????? ??????? ?????????? ????? ????????? ??? ????? ??????? ??????.
?????? ?????? setToolTipText(), ???????????? ?????? ??? ?????? ?????????? ????????? ? ??? ???? ??? ???? ???????, ????????? ???????? ?? ?? ?????, - ??? ?????? getToolTipLocationi ? getToolTipText(MouseEvent), ???????????? ? ??????? ?????? JComponent. ??????, ???????????? ??? ???????? ????????, ?????? ??? ???????????????? ?????? set ???, ? ??? ????????? ??????? ??????? ?? ??????????? ??????????????, ??? ?? ? ??????? ? ????? ???????, ?????? ????????? ???????? ?????? JButton. ????? getToolTipLocation() ????????? ??????? ????? ToolTipManager, ? ????? ????? ?????? ??????? ???????? ????????? ???????????? ??????????, ??? ???????? ????????? ?????????. ????? ????????? ????????? ????? ??? ????????? ? ??????????? ?? ??????? MouseEvent, ?? ???????? ????????? ?????????. ? ??????? ?? ???????, ??? ????????? ?????? ?????????? ?? ?????????? 10 ???????? ?? ???? X ? Y ?? j ???????? ?????? ???? ????? ?????? (????? ????????? ? ????????????? ??????????, ??? j ????? ????????, ??? ?? ?????? ??????? ????????? ?? ???? ??????????, ??? ??????, ? ??- j ??). ??????, ????????? ????????? ????????, ?????? ???? ????????? ????????? ??? ??????????? ?????????, ?? ???? ????? ?? ??????? ????? ? ???????? ???? ?????? ?????????? ? ????????? ?????? ????? ToolTipManager ??? ??????, ??? ??????? ?? ??????????. ?????????? ?????? ?? ??????? ?????????, ???????? ????????? ? ????????: ????????? ?????? ?????? ????? ?????????? ? ?????? ??????, ? ??????????? ?? ????????? ????????? ???? ? ??? ?????? ?????? ??? ?????? ????? ?????????? ?? ????????? ???? ?????????? (???? ?? ?????? ?????). ????? getToolTipText() ????????? ???????? ??? ?????? ? ???? ?? ?????????; ????????? ????????? ? ??????????? ?? ????, ??? ???????????? ???????? ????????? ???? (?????????? ????? ????? ????????? ?????? ?????? MouseEvent). ?????? ????? ????? ????????????? ???????? ???????????? Swing, ?????? ??? ?????? ??? ???????, ?????????? ;?. ?????? ?????????. ? ??? ??????? ??? ???????????? ????? ??????????? ????????? ??* ??????? ????????. ?? ????????? ?? ?????????? ??? ????? ????? ?????, ???????? ????- ??? setToolTipText(), ?? ????????????? ???? ?????, ?? ??????? ???????? ???????? ?????? ???. ? ??????? ?? ?????????? ????????? ?? ????????? ?????? ??? ??????? ????? ?????? (??????? ? 10 ????????), ? ??? ?????? ????? ?????????? ??????????? ?????.
???????? ?????? ??????????? ????????? ? Swing ???????? ?????. ??? ?? ????????, ??? ?????? ?????? setToolTipText() ????????? ???????????? ???? ? ????:; ToolTipManager. ????????? ???????? ??????? ?? ????????????? ???? ? ????????-? (?????? ??? ???? ??????????? ???????????? ???? ? ??? ?? ????????? ??????? ?? ????. ????????? ??? ??????? ??????? ????? ?????? ??? ???????? - ?????????, ? ??????? ??? ?????????). ????? ????????? ???? ?????? ? ??????? ?????????? (?????????? ?????
????????? mouseEntered()), ????? ToolTipManager ????????? ??????, ??? ???????????? ???????? (???? ??? ???? ?? ?????????? ???????? ????, ????? ?????? ??????????? ??????) ?? ????? ????????? ?????????. ????????? ????????? ? ??? ?????. ?????????? ?????????- ????????? JToolTip ????????? ??????? createToolTip(), ????????? ? ????? ?????????? Swing. ?????? ????????? (???, ??? ????? "?????????" ??? ?????????? ????????????, ? ??? ??????????? ????????? JToolTip) ????????? ? ??????? ???????????????? ?????? PopupFactory. ???? ????? ?????????? ??? ?????????? (??????????? ??? ????????????) ? ????????? ??? ? ?????? ????? ?????? (? ???? POPUP_LAYER ???????????? ?????? ??? ? ????? ???? ??? ????? JWindow). ????? ??????? ???????????? ???. 8.1.
???. 8.1. ????? ?????? ??????????? ?????????
????? ????????? ??? ????????? ?? ??????, ????? ToolTipManager ????????? ?????? exitTimer, ??? ???????????? ???????? ??? ??????????. ????? ?? ????? ?????????? ????????? ?? ?????? ToolTipManager ?????? ?? ??????? ?????????? (? ??????? ????????? FocusListener) ? ???????? ????. ? ?????? ???? ???????????? ??????? ?????, ????? ?? ????????? ????????? ?? ?????????? ??? ?????????, ??? ????????? ?????? ????? ?????, ????????? ??????????.
? ??? ???? ??????????????????????????????????????? ?????? ?????? ToolTipManager. ?????? ?????, ?? ?????? ?????????????? ????? createToolTip() ? ????? ??????????, ???? ??? ??????????? ???????????? ??? ???? ?????-?? ????????? ?????????, ?? ?????? ??? ??????? ????? ?? ?????????????. ?????, ???? ? ?????????? ??????? ?????? ??????????? ?????, ? ????????? ? ???? ????????? ???????????. ???? ??? ?? ?????????? ?????????, ??????????????? ???????????? ????? ??????????? ??????? ?????, ????? ????? ???????? ??? ??? ?????UI-?????????????. ? ?????? ???????, ??????? ??????????? ???????? ????????? ?????????, ? ?? ?? ?????? ??????????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
1. ????? ???????, ??????????? ??????? ??????????? ? ??? ????????????? (8).
????????? ???? ????? ????????????? ???????? ? ? ??????, ????? ????????? ?? ?? ????? ?????????? ? ????.
????? N\ - ????????? ? ?????, ??? ?" > ?, No - ????????? ? ?????, ??? ?" = 0. (?????? ?? ???? ???????? ????? ???? ??? ????????, ??? ? ???????????; ???????????? ??? ????????? ???? ?? ?????.)
??????? ? 19
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????????? ?????????
????? ToolTipManager ????????? ??????????? ????????? ?????? ????????? ?? ?????. ? ?????? ??????? ??? ????????? ?? ???????, ??????? ???????? ????? ?????????? ?????????, ??????? ?? ?????????? ?? ?????? ? ??? ? ????????? ??????????, ??????????? ????? ????????? ???????????? ??????????? ? ????? ??????????. ?????????,
???????? ?? ?????????, ?????? ???????, ? ?????? ?? ???????? ?????, ?? ????? ?? ??? ?? ???????. ????? ????, ?? ?????? "?????????" ? ???, ????? ??????? ?? ?? ?????? ?????? ? ???????? "???????" ?????????, ??????????? ??? ????????????. ?????????? ?????? ?????? ????????? ?????????, ? ????? ??????? ?? ????????? ? ???????:
// ToolTipsTuning.java
// ????????? ?????????
importjavax.swing.*;
public class ToolTipsTuning extends JFrame { public ToolTipsTuning() { super("ToolTipsTuning");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// ??????? ?????? ? ??????????? JPanel contents = new JPanelf);
JButton bl = new JButton("??????") ;
bl.setToolTipText("????????? ??? ??????");
JButton ?2 = new JButton("??????") ;
?2.setToolTipText("????????? ??? ??????"); contents.add(?) ; contents.add(b2);
// ????????? ????????? ToolTipManager ttm =
ToolTipManager.sharedlnstance() ; ttm.setLightWeightPopupEnabled(false) ; ttm.setlnitialDelay(1000) ; ttm.setDismissDelay(500) ; ttm.setReshowDelay(1000);
// ??????? ???? ?? ????? add(contents); setSize(200, 100); setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() { public void run() { new ToolTipsTuning(); } });
)
}
??? ? ? ?????????? ???????, ?? ????????? ? ???? ??? ??????, ??? ??????? ??.-?- ???? ????? ?????????. ????? ? ??????? ?????????? ?????? ToolTipManager (???????? * ????, ??? ?? ???????????? ????? ????????????? ????????, ????????? ???????? ?????? ???? ????? sharedlnstance()) ?? ?????????? ????????? ????????? ?????? ???????? ????????? ???????? ??????????? ? ????. 8.2.
????????? ????? ?????????????? ????????? ??????????? ???????? ?????? JComponent(?????? ?? ??????????? ? ????? 4), ??? ??? ??? ?????? ?????????? Swing ?? ?????? ???????????? ?????? ??? ?????. ????? ???????? ? ???????? ???????? border, ??????? ??? ???????? ?? ????????? ?????? get/set. ??????????? ????? ? Swing ??????? ? ?????????? Border?? ?????? javax.swing.border, ? ???? ?? ?????? ????????? ???????????? ?????????? ??????????? ?????. ??????? ?????????? ?????? ? ??????????? ? ????:
// Borders.java // ????? Swingimportjavax.swing.*; importjavax.swing.border.*; importjava.awt.*;
public class Borders extends JFrame { public Borders() {
super("Borders");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// ??????? ?????? ? ????????????? ??????? JPanel contents = new JPanel( new GridLayout(3, 2, 5, 5)); contents.add(createPanel(new TitledBorder(
"????? ? ??????????"), "TitledBorder")); contents.add(createPanel(new EtchedBorder(),
"EtchedBorder")); contents.add(createPanel(new BevelBorder(
BevelBorder.LOWERED), "BevelBorder")); contents.add(createPanel(new SoftBevelBorder(
BevelBorder.RAISED), "SoftBevelBorder")); contents.add(createPanel(new LineBorder(
Color.BLACK, 5), "LineBorder")); contents.add(createPanel(new MatteBorder(
new ImageIconCmatte.gif")), "MatteBorder"));
// ??????? ???? ?? ????? add(contents); pack();
setVisible(true);
}
// ????? ??????? ?????? ? ?????? ? ???????? private JPanel createPanel(Border b, String text) {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel(text));
panel.setBorder(new CompoundBorder(
b, new EmptyBorder(30, 30, 30, 30))); return panel;
}
public static void main(String[] args) (
SwingUtilities.invokeLater( new Runnable() ( public void run() { new Borders(); } });
}
}
? ??????? ?? ??????? ???? ? ??????? ? ??????, ??? ??????? ???????? ????????? ???????????? ? ?????? ????????; ?????? ????? ???????? ??????????????? ????? ???????? ????? javax.swing.border. ? ?????? ?????????? ???????????? ?? ????????? ?????? ? ?????????????? ??????? ? ???????? JLabel, ??????? ???????? ???????????, ????? ????? ????????? ??????? ?? ??? ???? ?????. ??? ???? ???????????? ??????????????? ????? createPanelQ, ??????? ??????? ????? ?????? ? ???????? ?????????????, ? ????? ?? ????????? ??????? ? ????????????? ?????? ????? Border. ????????, ??? ????? createPanel() �????????" ?????? ? ??????? ????? ???? ?????: ?????????? ?????? ???????? ? ???????? ????? ?????? CompoundBorder, ??????????? ?????????? ??? ????? ? ????. ??????? ?????? ???????? ??, ??????? ?????????? ? ????? ? ???????? ?????????, ? ?????????? ????? ??? ???? ??????? ???? - ??? ????? EmptyBorder, ??????????? ????? ???????? ?????? ? ?? ?????????? ?????? ????????????, ????? ??????? ? ????????? ????? ???? ????? ??????. ???????? ????????? ? ????????, ?? ??????? ??????????? ????????????? ????? Swing, ? ??? ?????? ??????: ?????? ?? ????????????? ???? ????? ????? ????? ?????????????? ???????? ??????????.
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??????? ????????? (1) ? ??????????? ?????? (? ?????? ??????????????? ???????) ?????????? ??????????. ?? (11) ???????, ??? ??(?) - ?????????? ??????? ??????.
?????? ??? Si ???????????? ??? ??, ??? ? ? ?????? ?????????? ????? ???????.
????? ????????????? ??????????? ??? ??????? ????? ????????????? ?????, ? ????????? ??????????.
?????????? ??????, ????? ???? ?(?, s) ?????????????. ????????? ???????? Q* ????????????
??????? ? 20
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?????? ????? ????? ????????: ? ????? ?????????? ???????? ??????????, ??????? ????? ??????? ???????????. ????????, ??? makeSameSize() ????? ?? ?????? ?????? ??????????? - ?????????? ???????? ??????? ????????? ? ??????????? ????????? ?? ????. ???? ???????, ??? ? ??????????? ???????? ???????????? ???????? ??????????? ?????????? ?????? ?? ??????. ???? ????? ??? ??????????? ????? ??? ???????????? ?? ??????, ???? ????? ?????? ??????? ?????????????? ???? ????? ? ?????????? ???????????? ????????? ??? ????????? ? ?????????? ???????. ????????????? ??? ??? ??????? ???????????. ?????? ??? ???????????, ??????? ??????? ?????????? ???????? ??????????? (??????, ???????, ??????, ????????), ??? ???????? ????????? ?????????. ????? ??????? ??????????, ??????? ??? ????????? ???? ?????? ???????????? ??????? ?????? ???? ??????? (???????, ????????? ??????????, ? ?. ?.) ?????? ??????????? ? ??????? ??????????? ?????? ??????? ?????????? ????????????.
??????????? ?????? fixTextFieldSize() ?? ??? ?? ????????, ?? ??? ???? ???? ?????????? ???? ????? ????? ?????? ???????????. ???? ? ???, ??? ??? ????????? ??????????????? ???????????? ? ???? ????????? ???? JTextField ????????????? ?? ?????? ? ?????, ??? ??? ? ????????, ?? ? ? ??????, ??? ?????? ?? ??????? ? ?????????????? ?? ???????????? ???? ?????. ??? ????????? ?? ???????? ??? ???????? ???????????? BoxLayout. ??????, ??? ??????? ? ???, ??? ??? ????????? ?????????? ? Swing ???????????? ?? ???????? ?????? JTextComponent, ??????? ? ?????? ????? ???????, ????? ?????????? ??? ????????????? ????? ????? ? ????-??????????. ????? ????????? ????? ???????? ??????????, ? ?????? GUITools ? ???????? ???? ?????. ?? ????????? ????? ?????????? ???? ??????????? ?????????, ? ?????? ?????????? ?????????? ?? ??????????? ?????? (??????? ????????????? ?????? ??????).
??????, ? ???????? BoxLayoutUtils ? GUITools, ??? ?????? ??? ????, ????? ? ???? ??????????? ???????????????? ????????? ?????? ??????????? ????:
// LoginDialog.java
// ????? ???????? ??????????????
// ????????????????? ?????????? ?? ???????
// ??????????? ???? ????? ? ???????
import javax.swing.*;
import java.awt.*;
import com.porty.swing.BoxLayoutUtils; import com.porty.swing.GUITools;
public class LoginDialog extends JDialog { public LoginDialog(JFrame pareift) { super(parent, "???? ? ???????");
// ???????? ???? ??? ???????? setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// ????????? ???????????? ? ????? ????
add(createGUI());
// ?????? ???????????????? ??????
pack () ;
// ??????? ???? ?? ????? setVisible(true) ;
}
// ???? ????? ????? ?????????? ?????? ?
// ????????? ?????????????
privateJPanelcreateGUI() {
// 1. ????????? ??????, ??????? ????? ?????????
// ??? ????????? ???????? ? ?????? ????????????
JPanel main =
BoxLayoutUtils.createVerticalPanel();
// ????? ????????? ??????? ??????????? Java,
// ?????????? ???????? ??? ?????????? ??
// ?????? ???? ?? 12 ????????.
// ??? ????? ?????????? ?????? ?????
main.setBorder(
BorderFactory.createEmptyBorder(12,12,12,12));
// 2. ?????????? ????????? "??????", ?? ???????
// ??? ?????? ????????? ?? ????? ???????
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel name =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel nameLabel = new JLabel("???:");
name.add(nameLabel);
name.add(BoxLayoutUtils.createHorizontalStrut(12)); JTextField nameField = new JTextField(15); name.add(nameField);
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel password =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel pas-swrdLabel = new JLabel ("?????? :") ; password.add(passwrdLabel) ;
password.add(BoxLayoutUtils.createHorizontalStrut(12)) JTextField passwrdField = new JTextField(15); password.add(passwrdField);
// ?) ??? ??????
JPanel flow = new JPanel( new FlowLayout(
FlowLayout.RIGHT, 0, 0) );
JPanel grid = new JPanel( new GridLayout(
1,2,5,0) ) ;
JButton ok = new JButton("OK");
JButton cancel = new JButton("??????"); grid.add(ok); grid.add(cancel); flow, add (grid) ;
// 3. ?????????? ??????????? ???????? ?? // ???????????? ???????????, ????????? ?? // ????????, ???????? ?????????? ???????? // ?) ????????????? ???????????? // ????????? ??????? BoxLayoutUtils.setGroupAlignmentX(
Component.LEFT_ALIGNMENT, name, password, main, flow) ;
//?) ??????????? ???????????? ???????? // ? ????????? ????? BoxLayoutUtils.setGroupAlignmentY(
Component.CENTER_ALIGNMENT,
nameField, passwrdField, nameLabel, passwrdLabel); // ?) ?????????? ??????? ???????? ? ????????? ????? GUITools.makeSameSize(nameLabel, passwrdLabel);
// ?) ?????????? "???????????" ?????? ????????? ????? GUITools.fixTextFieldSize(nameField);
GUITools.fixTextFieldSize(passwrdField);
// 4. ????????????? "????" ????? ? ????????? main.add(name);
main.add(BoxLayoutUtils.createVerticalSbrut(12)) ; main.add(password);
main.add(BoxLayoutUtils.createVerticalStrut(17)); main, add (flow) ;
// ?????? returnmain;
}
// ???????? ????? ??? ???????? ??????????? ????
>?.; ?? ?????? ???????????? ? ??????????? ????????????? ????? ????????? ????????? ??????? ? ????????? ??? ???????????????? ? ??????????? ? ?????? ??????? ????????????????? ?????????? ?????????. ??? ????????????? ?????? ? ??????????? ??????????? : ??? - ???? ?????. ????? ?????? ?? ?????????? ??????????, ???????????? ???? ????? ?? ????????? ????? ? ???????? ? ??????? ??????. ???????? ????? ???????, ????? ??????? ????? ?????????? ????? ???????????, ? ?? ????? ??? ???????? ?????????? ??????????.
??????????: ?????? ?????
?????????? ???????? ??????? ?????????? ?????????? ? ??????? ????????? ?????? ? ????????? BoxLayout. ???? ?????? ??????????? ?????, ?????? ??????? ?????????? ????? ?????????????? ????????, ????? ??? ???????????? ?? ???? ? ???????? ?????????? ????????, ? ????? ?????? ???????? ??????????. ? ?????? ???????, ? ??? ???? ?????????, ?????????? ?? ???????? "?????? ?????". ???? ???????????? ?????? ????????? ????????? ?? ?????, ?????????? MigLayout ??? GridBagLayout (? ??????? ?????????????? ???? ???????? ???????????) ????? ???? ???????, ??? ??? ?????? ????? ??? ????????????? ???????????? ??????????? ? ?? ????????.
????????? ?????? ??????????? ??? ?? ????? ???????? ?????????? ??????? ????? ? ??????? ? ??????? ????????? MigLayout. ??? ?????, ? ??? ????? ??? ???? ? ??? ???????, ?????? ?????? ???????? ?????????? ? ??????? ?????????????? ??????, ??? ?? ?????? ?????? ?? ??? ?????. ?????? ??????? ?????? ????? ? ???????? ?? ???????????. ??? ??? ?????????:
// ???? ????? ????? ?????????? ?????? ? // ????????? ????????????? privateJPanelcreateGUI() {
// 1. ???????? ??????
//? ???????????? ?????? "????" ??????? ??????? JPanelmain = newJPanel(newMigLayout("", "[][grow]"));
// ?????? ??? ?????
main.add(new JLabel("???:"));
main.add(new JTextField(15), "gap rel, wrap rel, growx");
// ?????? ??? ?????
main.add(new JLabel("??????:"));
main.add(new JTextField(15), "gap rel, wrap unrel, growx");
// ?????? ??? ????? - ?????? ??????????? ??????? // ?????????? ?????? ??????, ????????? ?????? ?? ???
main.add(new JButton("OK"), "skip 1, split, sg buttons, align
right");
main.add(new JButton("??????"), "sg buttons");
// ?????? return main;
}
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
???????? ???????? ??????????????? ??????? ????????????? ???????????, ??????????????? ????????? ??????? ????????.
??????? ? 21
1. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????? 7. ????????? ????????????
??? ?? ??? ????? ????????? ?? ?????????? ????????, ?????????? ??????????? ?? ????? ? Java ?????????? ?????????? ????????. ?? ???????????? ????? add(), ?, ??? ?? ??????????, ?? ????? ?????????? ???? ?????????? - ??????, ???????, ????????? ????. ??? ????? ?????????? ????????, ?????? ??? ??? ???????? ?????????? ?????????? ????? ????????? ?????? ?????????? ? ??? ???????????? ?? ?????? - ?????? ????? ??? ????? ???????????? ??? ?????????? "??????????" ??????????, ????????? ????????? ?? ??????????? ??????????? ?????? ? ??? ????????. ????? ????????? ?????? ? ?????? ????????????, ??? ?? ???????? ? ??????????? ??????????? ???? ?????????? ???????????? ?????????? ????????, "????????? GUI". ??????? ?????????? ????????? ???????. ?? ???????? ????? ??????? ????? - ?????? ???? ? ?????? ??? ?????????? ???? - ? ???????????? ?? ??? ??????????? ??? ??????????, ??????? ??? ??? ?????????? ??????? ? ???????. ????? ????? ???? ????? ???????????? ? ?????? ????????, ??????? ??? ?????????? ????????? ?????????????? ? ????????? ? ??????????? ??? ?? ???????. ??? ????? ?????? ? ??????.
?????? ???????????, ??? ????????????? ????? ?? ????? ? Java ???????? ?? ?????? ?????. ???? ????? ???? ??????? ????????? ????? - ?? ????? ????????, ??? ????????? ?? Java "??????? ???? ???, ? ??????????? ?????". ???? ?? ?? ?????????? ?????? ???????????? ??????????, ??????????? ?? ??? ??????????? ? ??? ???? ????? ????? ? ??? ?????????, ??, ???????, ?? ?? ??????? ????? ???????? ?????????, ?????????????? ??? ?????? ???????????????? ???????????? ???????, ??? ???? ????????? ?? ?? ???????. ???????????? Java ????? ??????? ???????, ??????? ? ????????? ????? ??????????. ?? ? ????? ?????? ???????? ???-?? ?????? ??? ???????? ????? ????? ????????????? ????????? ? ????????????? ? ??? ???????????? ???????? Java - ??????????? ????, ????????????? ?????? ? ????? ??????? ??????????? ?????????? ?????? ?????? ? ????????? ???, ? ??????, ???????? ??????? ???? ????????, ????????? ?? ?????. ??????????? ?? ???? ???????????? ???????? ?????????? ????? ???? ???????????, ? ??????, ????????? ?????????? ?? ???????? ??? Windows, ? ?????? ???????????? ??????? ????? ????????? ??????? ??????? ??? ??????? ?????????. ???, ????????, ? ?????????? ???????????? ?? ?????? ??????? ??? ?????? ?????????? ????????? ? ??? ???? - ? ?????????, ???????????? ?????????? ??????? ? ?????????? ??? ?????? ???????, ?? ?????? ?????? ?? ??????. ??????? ??????? ??????? (????? ???????? ????????? ?????????? ? ??? ????????) ? Java ?? ?????????.
???? Java ??????? ????? ????? ???????????? ????? ??????????? - ?? ????? ?????????? ???????????? ?????? ????????? ????????? ??????????? ?????? Java. ?????? ???????? ?????? ??????????? ???????????? ??????????? ?? ????? - ????? ?????????? ???????? ? ????????????? ?? ?????????? ????????. ??? ??? ???????????? ???????? ???- ????????? (layoutmanager), ??????? ?????? ????? ?????? ???? ? ?????????? ????????????????? ??????????. ???????? ???????????? - ??? ????? ??????????? ??????1, ??????????????? ? ?????? (? Java ?????? ??????? ? ???????????) ? ????????????, ????? ??????? ?? ??? ????? ????????????? ??????????. ?????????? ?? ?????????, ??????????? ??????, ?????????? ? ???????? ?????? ???????? ???????????? ???????????, ???
' ?? ????? ???????? ?????????????? ???????? ???????????? ????? ??????? ??? ?????????- ???????? ???????????? ???????????, ????????????? ?? ??????? ??????, ???? ???????? ????? ????? ? ?????? ?????????? ? ??? ????????????? ???????.
?????????? ????? ????? ???????????????? ??? ??????? ? ???? ?????? ? ????????????? ? ??? ???????, ??????? ??? ?????? ????????????? ??????????? ?????????.
???? ???????, ??? ? Swing ???????? ???????????? ?????? ??? ??????? ????, ??? ??????. ?? ????????? ?? ?????? ???????? ???????? ????? ????????????? ?????????, ?? ? ???? ??????????? ?????? ? ????????? ??????? ??? ??????????, ?? ????????
????, ??? ??? ???? ?????????? ??????? ? ???????????? ???????????. ?? ????? ????, ????????? ??????? ???? ?????????? ??????? ??????????? ????????? ???????, ? ???? ?? ?? ?????? ???????????? ???????? ???????????? ??? ?????? ??????????, ??????? ?? ?????? ???????? ???? ? ??????? ????? ????? ??????????? ???????.
? ???? ????? ?? ??????, ??? ????????????? ????????? ???????????? ? ??? ???????? ????? ?????? ??? ?????? ? ????. ????? ????? ?? ???????????? ?? ???????????? ??????????? ????????????, ??????? ? ??????????? ????? ????? ??????. ?????? ????? ??????????, ??, ??? ???????, ??????? ?????????? ??????? ?????????? ????????????? ??????????, ? ?????? ????? ???????? ?? ?????? ???????????? BoxLayout, ???????, ???? ? ???????? ???????????? ???????, ???????? ?????????? "???????" ????????? ????????????????? ??????????, ? ??????? ?????????? ???????????? GridBagLayout, ? ????? ??? ???????????.
? ??????? ????????? ??? ?????? ? ???????????? ? ?????????????? ??????? ?????????????. ??? ????? ???????????? ????? BoxLayoutUtils, ????????? ? ?????????? ???????. ????? ???????????? ???????? ???????? ????????? ????????, ????????? ??????? Box- ??? ???????? ???????????? ???????? ???????????? ????? createVerticalStrut(int), ? ???????? ????????? ???????? ??????????? ?????? ???????? ? ????????. ?????????? ???????? ????? createHorizontalStrut(int), ????????? ?????????????? ????????. ????? ????? ?? ????????? ???????????? ???????? ????? ???? ??????? ??????????? ??? ????? ???, ????? ?????????? ?? ?? ?????? ????.
??????, ???? ????? ??????? ?????? setVisible() ?? ???????? ????? ????(), ????????? ???? ? ???? ???????????? ? ??? ??????????? ??????????? ?????? (??????????? ?????? ???????????, ??? ?? ???????, ?????????? ????? getPreferredSize()), ?? ???????, ??? ???????????? ????? ? ???? ???????. ??? ??? ? ?????? ???? - ????? ????? ? ?????????? ??????? ?????? ?????? ??? ????, ??? ?????????? ??? ??????? ?????????? ? ????????, ?? ??????????? ????? ???? ????? ??????? - ??? ??????????? ? ???????????????? ??????? ?????????? ????????.
????????
??????????? ???????? ???????????? ????????, ?????? ??? ????? ?????????????? ???????????? ??????. ????? ? ?????????? ? ??????? ????????????? ??????? ?????????? ????????????, ??? ??????? ??????? ????? ????????????, ??????? ??? ????? "?????", ?? ???? ?? ???????? ????????????? ???????. ????????? ??????????, ???????? ?????? ????????? ? ?????????, ????? ????? ?????, ? ???? ?????????, ??? ????????? ???????????? ????????? ??????? ????? ???? ? "?????????????". ????? ? ?????????? ?? ???????? ???????????, ????????? ?????, ??? ?????????? ???????????? ??????????? ????? ???????????, ????? ??? ??????, ? ??????????? ?? ????????? ??? BoxLayout.
????? ??????? ????????? ? ???????? ? ???, ????????, ?????? ??? ???? ??????. ?????? ?????? ????????????? ??? ???????? ???????????? ???? ?????? ???????????? ??? ?????? ????????? ?? ? ????? ??????? ????, ??? ? ?????????? ????????, ? ???-?? ?? ????? ???????, ????? ? ??? ????????. ???? ? ???, ??? ??? ??????? ???????? ?? ?????????? ????????? ???????????? ? ?????? Component????????????? ??? ??? ?????????, ???????? ???????????? ?? ???? X ? Y, ? ???????? BoxLayout?? ??????? ??????????. ??? ????????? ??? ????????? ???? ?? ??????, ?? ?????? ? ????????? ???????.
???????, ? "????????" ? ?????? Box??????? ??? ???? ???????? ??????? ?????????? - ????????????? ???????. ?????????? ?? ???????? ?????? ?? ???????? - ??? ??????? ??????????, ?????? ?????????, ? ?? ?????? ?? ??????? ????. ???????? ??, ?????? ?? ??? ?? ??? ?? ??????, ? ??????????? ??????????? ??????? ?????? ?????????? ???????? ? ????????????, ?????? ?????? ?? ?????? ??? ??? ?? ??? ??????. ? ?????? ?? ?????????? ?????? ? ?????????????? ?????????:
// BoxRigidAreas.java
// ?????? ????????????? ????????????? ???????? import javax.swing.*;
import com.porty.swing.BoxLayoutUtils; import java.awt.*;
????????? ????????? ? ???????? - ???????????? ?????? ????? ???????? ????-?? ? ???????? ????. ?????? ?? ??????? ??? ???????? ??? ????????, ? ????? ???????????? ????? ? ??? ? ?????.
// com/porty/swing/GridBagHelper.java
// ??????????????? ?????, ??????????? ??????
// ???????????? ??? ??? ???????????? GridBagLayout
packagecom.porty.swing;
import javax.swing.*; import java.awt.*;
public class GridBagHelper (
// ?????????? ??????? ?????? private int gridx, gridy;
// ???????????????????GridBagConstraints private GridBagConstraints constraints;
// ?????????? ??????????? ??????GridBagConstraints public GridBagConstraints get() ( return constraints;
}
II ????????? ?? ????????? ?????? publicGridBagHelpernextCellO {
constraints= new GridBagConstraints();
constraints.gridx = gridx++; constraints.gridy = gridy;
// ??? ???????? ?????????? ???? returnthis;
}
// ????????? ?? ????????? ??? publicGridBagHelpernextRowO{ gridy++; gridx = 0;
constraints.gridx = 0; constraints.gridy = gridy; return this;
II ?????????? ?????? ?? ????? ?????? public GridBagHelper span() {
constraints.gridwidth = GridBagConstraints.REMAINDER; return this;
}
// ????????? ?????? ?? ??????????? public GridBagHelper fillHorizontally() {
constraints.fill = GridBagConstraints.HORIZONTAL; return this;
}
// ????????? ???????? ?????? public GridBagHelper gap(int size) { constraints.insets.right = size; return this;
>
... ????????? ??????????????? ??????
)
2. ??????????????? ??????? ?? ??? ?????
3. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??????? ? 22
4. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?????? ????????? ???????????? ?????????? ????????? ???????: ?? ???? ??????? ??????? ?? ??????????, ?????????? ??????????? ? ??? ?????????? (????? ????????????? ????? ?????? layoutContainer() ?? ?????????? LayoutManager). ? ?????? layoutContainer() ? ?????????? ???????? ?????? ?? ???????????? ??????????? ? ??????????. ???????? ????????????, ???????? ?? ???????? ????????? ??????? ? ???????? ???????????
2 ?? ???????? ????????? ????????? (? ?????, ???????? ???????) ?????? ?????? revalidate() ? ????? 5. ??? ???????, ???????? ???????????? ?? ???????? ???????, ?? ???? ?? ????? ????????? ? ??????? ????????, ????? ????? ????? ? ?????????? ????? 5.
??? ??? ?????? ?????????? Swing, ???? ??? ????????? ??? ????????? ?????????, ????????? ????? revalidate(), ???????????? ? ??????? ?????? ?????????? JComponent2 .�
???????? ???????????? ?????? ??????????? ??????????? ? ????????? ?????????? ? ????????? ???????, ????????? ?? ?????????????? ? ??? ?????????, ? ??????? ?? ????????? ??????, ??? ???? ?? ?????? ????????? ???????????? ???????? ???????????.
� ???????????????? ??????. ????? ?????? ???????? ???????? ??????? ??????????. ?? ????????? ??? ??????? ??????????? ??????????????? UI-??????????????? ???????? ???????? ???? ? ????????? (lookandfeel), ?? ?? ?????? ???????? ??. ???????????????? ?????? ????? ???????? ? ??????? ?????? SetPrefferedSize().
� ??????????? ??????. ???? ???????? ??????????, ?? ????? ??? ???????? ???????????? ????? ????????? ?????? ??????????. ????? ?????????? ???????????? ??????? ???? ??????????? ????????? ?????? ?? ?????? ????????? ???? ??????. ??????????? ?????? ????? ????? ????????, ??? ????? ???????????? ????? setMinimumSize().
� ???????????? ??????. ???? ???????? ??????? ? ???, ????????? ????? ??????????? ????????? ??? ?????????? ???????? ??????????. ????????, ???????????? ?????? ?????????? ???? JTextField ?? ?????????, ??? ?? ?????? ?????? (???? ????? ??? ?????? ????????? ???? ???????????????? ??????). ??? ?????????? ?? ?????? ????????? ? ??????? ?????? setMaximumSize(), ???????????????? ???????????? ??????. ??????? ????? ?????????? ???????????? ?????????? ???????????? ??????, ??????? ? ???????? ? ???????????????? ? ??????????? ?????????.
� ???????????? ?? ???? ?? Y. ??? ????????? ????? ?????? ????????? BoxLayout, ?????? ??? ???? ??? ?????? ????????? ????. ??????? ?? ?? ??????????, ????? ?????? ?? ???????? ????? ?????????.
� ??????? ??????????. ??? ????????? ??????????, ??????? ????????? ???????? ????? getlnsets(), ?????????? ??????? ???????? ?? ?????? ??????????. ?????? ????????? ???????????? ?????????? ?? ?????????. ? Swing ? ??? ???????????, ? ??? ??????????? ??????????? ????? Border, ??????? ????????? ????? ? ???????????? ??????????, ????????? ???????? ???, ??? ?????? ?????? ??????????? Swing ????? ??????? ? ?????????????.
� ??????? ?????. ???????????? ??????, ???????????? ????????? ????, ?? ???????? ????????????? ?????? ??????. ??? ??????????? ?????????? ??? ????????, ??? ?????????? ?????, ?? ??????? ???????????? ?????????? ????? ???????????, ? ???????, ??????? ????? ?????? ? ????????? ???? ? ??????? ????? ?????? ??????? ?? ??????. ? ????????? ?????? ???????? ???????????? ?? ?????, ??? ??????????? ?????????? ? ?????? ????????? ?? ?????? ?? ??????? ? ?????? ??????? ??? ?? ??????, ??? ????? ???????? ? ???????????????????? ??????????? ? ??????????? ???????????. ??? ??????????? ??????? ????? ???????????? ????? getBaseline(), ??????? ? ????? ??????????? ????? ??????????????.
� ? ??????????, ?????? ??????????? ?????????? ?? ???????????? ???????? ? ??????????, ??????? ??? ??????? ?? ??? ????? setBounds(), ??????????? ??????? (? ????????, ? ??????? ????????? ??????????) ?????????????, ??????? ????? ???????? ?????????. ??? ??????? ?????????? ???????????? ? ?????? ?????????? ??? ???????? ????? ?????? ? ??????? ??????????, ?????? ??????? ????????? ???????????? ??????????? ??????????? ?????? ????????. ????????? ?????? ???????? ???? ?????? ???????? ???????????? ???????????, ?? ????? ??????????? ?????????? ??????????? ? ??????????? ????? ???? ? 5 ???????? ? ???????????? ??? ???? ??????????? ???????????????? ??????. ??? ??? ? ??? ?????????:
� // VerticalLayout.java
� // ??????? ???????? ????????????, ??????????? // ?????????? ? ???????????? ??? ? ????????? import java.awt.*; import javax.swing.*;
� public class VerticalLayout implements LayoutManager {
� // ?????? ????? ???????????? public int GAP = 5;
� // ?????? ??????????? ?????????? ? ?????????? public void layoutContainer(Container ?) {
� Component comps[] = ?.getComponents();
� int currentY = GAP;
� for (Component comp : comps) {
� // ????????????????????????????????Dimension pref = comp. getPreferredSize (') ;
� // ????????????????????????????????????comp.setBounds{GAP, currentY, pref.width, pref.height) ;
� // ???????????????????????????currentY += GAP; currentY += pref.height;
� }
� }
� // ??? ??? ?????? ??? ?? ??????????? public void addLayoutComponent(
� String name, Component comp) {
� }
� public void removeLayoutComponent(
� Component comp) (
� }
� // ??????????????????????????????public Dimension minimumLayoutSize(Container c) { return calculateBestSize(c);
� }
� // ???????????????????????????????????public Dimension preferredLayoutSize(Container ?) { return calculateBestSize(?);
� }
� private Dimension size = new Dimension();
� // ????????????????????????????????????1private Dimension calculateBestSize(Container c) {
� // ??????????????????????????????Component!] comps = ?.getComponents(); int maxWidth = 0; for (Component comp : comps) { int width = comp.getWidth();
� // ????? ?????????? ? ???????????? ?????? if (width > maxWidth) maxWidth = width;
� }
� // ????? ?????????? ? ?????? ?????? ??????? size.width = maxWidth + GAP;
� // ????????? ?????? ?????????? int height = 0;
� for (Component comp : comps) { height += GAP; height += comp.getHeight();
� }
� size.height = height; return size;
� }
� // ?????????????????????????????public static void main(String[] args) {
� SwingUtilities.invokeLater( new Runnable() {
� public void run() {
� JFrame frame = new JFrame("VerticalLayout"); frame.setDefaultCloseOperation(
� JFrame.EXIT_ON_CLOSE);
� // ????????????????????????????????????????JPanel contents = new JPanel( new VerticalLayout());
� // ??????? ???? ?????? ? ????????? ????
� contents.add(new JButton("????")); contents.add(new JButton("???")); contents.add(new JTextField(30)); frame.add(contents); frame.setvisible(true); frame.pack(); } });
� }
� }
5. ??????????????? ??????? ?? ??? ?????
6. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MS Equation
� 1. ???????? ??????? ?????? ?????? ?????
?? ?????? ?????? ????????????? ??????? ????? ??? ????????? ? ???????? ???????????? ??????????? ? ???????? ???????????? ? ?????? ??????, ??? ???????????? ??????? ?????????? ? ???? ????????? ????????????? ???????. ??? ??????? ????????? ????? ????? ?????? ??????????? ? ? ????????? ?????.
? ??????????? ?????? ???????? ??????????? ??? ??????? ????????? ?????? ???????? ???? ? ????????, ??? ???????? ?????? ??????????? ???????????. ?? ??????? ???? ????? ???? ?????????? ?????? ?????????? ???????????, ??? ?????, ? ?????????, ????? ?????????? ???????? ? ??????? ??????????? ???????? ??????? ??????? ????????? ? ???????? ????????????. ? ????????? ????? ??? ?????? ?????? ? ???????????- ? ???????????-??????????? (????? ???????? ?????????) ???????? ???????? ?????????????????. ??? ??????? ????? ????????? ???????? ?? ???????? ???????????? ???????????? ???????? ??????? ? ????????? ???????? ??????? ?????. ? ?????? ????????????? ????? ????????? ??????? (????????, ????????????????) ??? ????????????? ????????????? ??????? ?? ???? ???????.
??????? ? 23
7. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??? ?????? ???????? ????????????, ?????????? ???????? VerticalLayout, ??? ? ???????? ?????? ????????? ????????????, ????????? ????????? LayoutManager. ?????? ?????, ??????? ??? ???????? ???????????, ???????????? ???????? ? ????? ?????? - ?????? ? ?????? layoutContainer() ???????? ???????????? ?????? ??????????? ??? ??????????, ???????????? ? ??????????, ?? ????? ??????. ????????? ?????? ????????? ???????????? ?????????????: ?? ????????? ?????????? ? ???????????? ???, ??????? ?? ??????????? ? 5 ???????? (?????????? ???????? ? ?????????? GAP), ??? ?????????? ????? ???????????????? ??????. ????? ??????????? ????? ?????????, ???????????? ????????? ????????: ?? ??????????? ?????? ???????????? ? ?????????? ??????????? (???????? ???? ?????? ????????? ????? ?????????? getComponentsO), ???????? ??? ??????? ?? ??????????? ???????????????? ?????? ? ??????? (??????? setBounds()) ??????? ?????????? ?? ??????, ????????? ?????????? ??????? ?????????? ?? ??? Y, ?????????? ?? ?? ?????? ?????????? ?????????? ? ?????? "?????????????" ?????????? ?? ?????????? GAP. ??? ??? ?????????? ????? ????????????? ???? ??? ??????, ?????????? ?????????4. ???????? ????????, ??? ?? ???????? ?????????? ? ?? ????? ??????? ?????????? ?? ?? ?? ????? ??????????.
????? ??????? ??? ??????, ???????? ??? ?????????? ? ???????? ??????????? ?? ?????? ??????????? ????????? ????????????. ????????, ??? ????? addLayoutComponent() ????????? ????????????? ? ??????????? ??????, ??????? ????? ???? ???????????? ?????????? ???????????? ??? ???????????? ???????????? ????, ??? ?????? ???????????- ?????? ?????? ?????? ?????? ?????????. ??? ??????? ???????? ???????????? ?? ???????????? ???????? ????????????, ?????? ?????????? ??? ?????????? ????????- j ?? ? ???????????? ???, ?????? ????? ??????? ????????????, ? ???????, ???????? pa:- j ????????? BorderLayout, ??????? ?? ?????? ??????, ?????????? ??? ?????? ??? ???.?? 1 ??????? ?????????? ?????? ?????????? ? ??????????.
?????????? ???????? ??? ??????, ?????????? ???????????????? (preferredLayotr- | Size()) ? ??????????? (minimumLayoutSize()) ??????? ?????????? ??? ???????????"?* I ? ??? ??????? ????????? ????????????. ????? ? ?????????? ???????? ???????? pi: ??????????, ?????? ?? ????????????? ? ???, ????? ?????? ???? ???????????????? ?? I ??????????? ?????? ??????????, ? ??? ?????? ?????????: ???????? ???????????? par- ????????? ????? ?? ??????, ??? ??? ?? ?????? ?????, ??????? ????? ????? ? ?????????? 1 ????????? ??? ?????????? ??????. ??? ?????? ???????? ????????? ???????????? ? ????????? ? ???????????????? ??????? ?????????? ?????????, ?? ????????? ????? 1 calculateBestSize(). ????????? ??????????? ?????? ?????????? ????????. ??? ?????? ?? ? ????? ???? ????????? ? ????? ??????? ??????, ?????????? ? ????????? ????? pa"- 1 ??? ??????? ?? ????? ??????? ?????????? ?? ???? GAP ? ???????? ??????????????? ??????????. ??? ?????? ?????????? ???? ???????: ?????????? ?????????? ?????? ????
' ???????? ????????, ??? ??? ?????? ???????? ???????????? ?? ????????? ?? ???????? ????? ?? ????????? ?? ??????, ????? ??????????? ???????. ????????? ?????? ????? ????????^? ? ??????????, ?? ???? ?????????, ? ????? ??? ??????? ????????? ?? ????????. ??? ???????? ??? ???? ?? ???????? ??? ????????.
??????????? ? ?????????? ???????????, ? ????? ?????????? ? ??? ?????? ??????? ????? ?? ?? ? ????????????. ?????????? ????? ? ???????? ??????????? ??????? ??????????.
????? ?????????? ???? ??????? ?????????? LayoutManager?? ?????? ????????? ??-??? ???????? ???????????? ? ??????. ??? ????? ? ?????? mainQ?? ??????? ????????? : ??? ? ?????? JFrame? ????????? ? ??? ???? ?????? JPanel, ???????????? ??? ??? ??? ????? ???????? ????????????. ? ?????? ??????????? ???? ?????? ? ???????? ??????? "???????? ????, ????? ???? ???? ????????? ?? ?????. ????? ??????? ???????????? ??????? ????? ?????????? ??????????? ????????, ?? ???????? ????? ????(), ??????? ??????? ???? ???????????????? ??????. ???????? ????????? ? ????????, ?? ??????? : ??????, ??? ?????????? ????????????? ??????????? ???? ??? ??????, ? ????? ?? ??? ???????? ?????? ??????????? ????????.
?????? ???????? ????????? ?????? ????????? ???????????? ? ?????? ?????? ??- ?????? ????? ???????? ???????????? ???????????, ????? ????? ?????????? ? ????? ????????, - ?????? ??????, ?????? ??? ?????????????? ?????? ??? ????????????? ??????????? ? ??????????? ?????? ??????? ????? ?????????. ?????? ?????????? ?????????? ??????????? ?????????? ???????????? ?? ? ???? ?????? ?? ?????. ????????? ????????, ??? ??? ???????? ??????? ???? ? ??????, ??? ???????, ? ?????? ? ???????????? ???, ????????????? ?????????? ?? ??????????? ??????????, ?????? ????????. ??????? ????? ???????????? ?????? ????????? ??????????? ????????? ????????????, ??????????? ? ??????? ????????? ??????? ???????? ????? ????????????. ???? ?? ?????? ? ????????.
??????????? ????????? ????????????
? ?????? ?????????? JDK 1.7 ??????? ???????? ????? ??????? ??????????? ?????????? ????????????. ??????? ?? ????? ????????? ?? ????????? ?????: ????? ??????? (? ??? ????????? FlowLayout, GridLayout? BorderLayout), ????????????? (? ????? ??? ?????? ???????? ????? ??????? ???????????? BoxLayout, GroupLayout? GridBagLayout) ? ?????????????????? CardLayout? SpringLayout).????????????? ????????? ?? ?????????? ? ????????? ??????? ? ???????? ????????, ? ???? ?????? "?????????" ?? ???? ????????? ??????????.
???????? ???????????? BorderLayout
???????? BorderLayout?????????? ???????????? ??? ??????? ? ?????????? ????, ?????? ??? ????????? ?????? ? ?????? ??????????? ???????? ????? ???????????? ???????? ?????? ????: ?????? ????????????, ?????? ????????? ? ???????? ??????????. ??? ????? ???? ??????????? ?? ?? ?????? ???????, ??? ?????? (?????? ??? ????????), ? ??? ?????????? ????? ??????????? ???????????, ??????????? ???????? ??????? ?????????? (????????, ? ????????? ??? ????? ????????? ????, ? ???????????? ?????????? - ??????? ????).
???? ???????, ??? ???????? ???? ???????? ??????? ?? ???, ??? ??? ????????? - ????? ???????? ? ??? ??????? ?????????, ? ?????? add() ?????????? ??????? ??????????????
????????, ??????? ??????????, ? ????? ??????? ?????????? ??????? ????????? ?????????. ???? ??????????? ?????????? ???????? ????? ?????????.
� ???????? BorderLayout.NORTH??? ?????? "North" - ????????? ????????????? ????? ??????? (????????) ??????? ???? ? ????????????? ?? ??? ??? ??????. ?????? ??? ??????????? ?????? ????????????.
� ???????? BorderLayout.SOUTH??? ?????? "South" - ????????? ????????????? ????? ?????? (?????) ??????? ? ????????????? ?? ??? ?????? ????. ????? ????????? ???????? ??? ?????? ?????????.
� ???????? BorderL.ayout.WEST??? ?????? "West" - ????????? ????????????? ????? ????? (????????) ??????? ???? ? ????????????? ?? ??? ??? ??????, ?????? ??? ???? ??????????? ??????? ???????? ? ????? ??????????? (??? ????? ?????????).
� ???????? BorderLayout.EAST??? ?????? "East" - ????????? ????????????? ????? ?????? (?????????) ??????? ????. ? ????????? ??? ???????????? ?????????? ????????? ??????????.
� ???????? BorderLayout.CENTER??? ?????? "Center" - ????????? ?????????? ? ????? ????, ??????? ??????????? ????????? ????????????/
?????
?? ????? ????????? ?????? ???????????? ?????? ??????????. ?? ?? ????????? ?????? ?????????. ?????????? ???????? ? ????????? ???? ???? ?????????? - ?????? ? ???? ?????? ?????? ???????????? ????? ????? ?????????????. ??? ???????? ???? ?????? ?????????? ?????? ??????????? ???????????? BorderLayout.
?????????? ??????? ??????. ? ??? ????????? ???? JFrame, ? ??????? ???????? BorderLayout???????????? ?? ?????????. ?? ??? ????????? ???? ??????????? ??????????:
// BorderLayoutSample.java
// ???????? ????????????
import javax.swing.*;
import java.awt.*;
public class BorderLayoutSample extends JFrame { public BorderLayoutSample() { super("BorderLayoutSample"); setSize(400, 300);
setDefaultCloseOperation( EXIT_0N_CL0SE );
// ???????????????????
// ? ???????? ?????????? ????? ???????????? ?????? add(new JButton("?????"), "North"); add(new JButton("??") , "South");
// ... ??? ????????? ?? ?????? BorderLayout add(new JLabel("?????"), BorderLayout.WEST); add(new JLabel("??????"), BorderLayout.EAST);
// ???? ???????? ?? ????????? ?????, ????????? // ????????????? ????????? ? ????? add(new JButton("?????"));
// ??????? ???? ?? ????? setvisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(
new Runnable() { public void run() { new BorderLayoutSample(); ) });
}
)
8. ??????????????? ??????? ?? ??? ?????
9. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
???????? ???????????? ? ??????? ??????? ???????? ??????. ???????? ??????? ??????? (5)-(6) ????? ???????? ??????????????? ??? ??????
??????? ? 24
10. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
? ??????? ???? ????????? ?????????? ????. ??-??????, ???????? ???????? ?? ??, ??? ????? ????????? ????????? ???????????? setLayout() ?? ?????????, ?????? ??? ?????? JFrame (? ????? ? ????? ??? ????? JWindow ? ?????????? ????? JDialog) ???????????? BorderLayout ??????????? ?? ?????????. ??-??????, ?????? ?????????? ? ?????????????? ????? ? ???????? ?????????? ?????? add(). ??? ????? ??????? ?????? ????????- ???? ??????, ? ?? ????? ??? ?????? ??? ????????????? ???????? ????? ?? ?????????
????????. ??????? ?? ?????? ? ????? ?????????? ?????????:
??? ????? ????????, ??????????? ????????? ???????????? ???????? ??????????. ?)?? ??????? ?????????? ??? ????, ??, ??? ?? ?????, ?????? ????? ?????? ? ? ????? ??????? ???????. ?? ???? ?? ????????? ??????? ???????.
[???????????????? ???????????? FlowLayout
; ???????????????? ???????????? FlowLayout ???????? ????? ??????, ?? ??? ?? ????? ??????????. ??? ??????????? ?????????? ? ?????????, ??? ??????? ?? ?????????: ???? ???????, ?????? ????, ??????? ? ???????? ?????? ???? ??????????. ??? ?????????- ??? ??????????????? ?? ????????? ? ??????? JPsnel. ???????? ????????? ??? ??????? ???????? ??, ??? ??????????? ?????? ????????? ???????????????? ?????? (????????, ?^??? ? ??????? JLabel ????????????? ?? ???????? ??????). ?????????? ??????? ??????:
XXI // FlowLayoutSample.java ?// ???????????????? ????????????
XXII import java.awt.*; import javax.swing.*;
XXIII public class FlowLayoutSample extends JFrame {
XXIV public FlowLayoutSample() {
XXV super("FlowLayoutSample") ; setSize(400, 200) ;
XXVI setDefaultCloseOperation( EXIT_ON_CLOSE );
XXVII // ????????????? ???????????????? ???????????? ? // ????????????? ??????????? ?? ?????? setLayout( new FlowLayout( FlowLayout.CENTER ));
XXVIII // ????????? ?????????? add( new JButton("????")); add( new JButton("???")); add( new JButton("???"));
XXIX II ??????? ???? ?? ????? setVisible(true);
XXX 1
XXXI public static void main(String[] args) {
XXXII SwingUtilities.invokeLater( new Runnable() { public void run() { new FlowLayoutSample(); } });
XXXIII }I
XXXIV }
XXXV ??????????? ?????? FlowLayout ????? ??? ????????????? ??????: ???????????: ? ? ??????????? ???????????? ???????????, ? ??????????? ???????????? ?????????:* ? ?????????? ????? ????. ? ??????? ???????????? ?????? ??????, ??????????????? ?>
XXXVI ?????????????? ???????????? ?? ??????.
XXXVII ????????? ????????? ? ????????, ? ?? ???????, ??? ???????? ???????? ??????? =??
XXXVIII ???????? ????????????.
XXXIX ???? ????? ??? ???? ??????????? ??????????, ??? ??????????? ????????????? " ? ] ?? ??????. ????????? ?????????????? ?????? ???? - ??? ?????? ????? ? ????? ????? 1 ???? ??????????? ?????? ????, ?????? ???????? ?? ?????? ???? (?????????? ?????* ???????? ? ???????????? ????? ??????? ? ????????????). ?????? ?????????? ?????"!
???? ?? ????????? - ?? ???????, ??? ??????????, ?? ???????????? ? ????, ?????? ???????? ?? ???? ??????! ??? ?? ?????-?? ?????????? ????????????????? ????????????, ??? ????? ?????????? ?? ?????? ??????, ? ?????? ????????? ??? ???????? ????????: ??? ???????????????? ???????????? ?????? ??????????? ???????????????? ?????? ???????????. ???????? FlowLayout????????? ???????? ?? ?????? ???????, ? ???? ????? ? ?????????? ?????????? ????, ?? ?? ?????? ?????? "??????" ??????????, ? ?? ????????? ?? ???????. ?????? ?? ???????? ????????? ????????? ???????????? FlowLayout??????? ???????? ??, ??? ??? ?????? ?????? preferredLayoutSize() ??? minimumLayoutSize(), ???????????? ?????? ???????????????? ? ??????????? ??????? ??????????, ? ??????? ???? ???????? ?????????, ????? ?????????? ??????, ??????????????? ???????? ???????????? ???? ??????????? ? ???? ??????. ??? ???????? ????? ??? ?????????? ????????????????? ???????????? ? ??????? ?????????? ????????????. ?????????? ????? ???????? ????????? ?????? ????????? ???????????? ????? ????????? ????? ?????????? ????? ??? ?????????? ??????????? ? ???? ??????. ?????? ?? ?????? ?????????? ? ????????.
??????? ???????????? ???????????????? ???????????? ??????? ?????? ? ??????????, ??? ?????????? ?????, ??? ???, ??? ?????????? ?????? ????? "???????" ???? ?????????? (?????? ?? ?????????? ? ????????? ???????). ??? ?? ?????, ???? ????????????? ?? ????? ???????? ???????? ???????????? ????? ????? ??? ??????????? ????????? ????????? ????????????.
????????? ???????????? GridLayout
??? ???????? ?????????? ?? ????????, ???????? ???????????? GridLayout????????? ????????? ?? ??????? ? ???????? ??????????? ??????? ?????????? ????? ? ???????? ????? ??????? ? ????????????, ?????? ?????????? ??????????? ?????? ???????????? ?????????? ???? ?????, ???? ???????? (?? ?? ????????????). ??? ?????? ????? ?????????? ??????.????????? ?????????? ????????????? ?? ???? ????????????, ??????? ?????????? ?????????. ????????? ???????????? ???????? ???????? ??? ????????, ??? ????? ??????? ???????? ?? ????????? ?????????? ?????? ? ???????? ?????????? ?? ??????? ??????????. ? ???????? ??????? ??????? ?????????? ???? ? ???????? ????????? ????????:
XL GridLayoutSample.java // ????????? ???????????? import java.awt.*; import javax.swing.*;
public class GridLayoutSample extends JFrame { public GridLayoutSample() ( super("GridLayoutSample"); setSize(300, 200); setLocation(100, 100);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ??????????????? ?????? JPanel grid = new JPanelO;
// ?????? ??? ????????? ???????????? GridLayout - // ?????????? ????? ? ???????? ? ??????? // ?????? ??? - ?????????? ????? ???????? ?? X ? Y GridLayout gl = new GridLayout(2, 0, 5, 12); grid.setLayout(gl);
// ??????? 8 ??????
for (int i=0; i<8; i++) {
grid.add(new JButton("?????? " + i));
}
// ???????? ???? ?????? ? ????? ????
add(grid);
// ????????????? ??????????? ??????
pack();
// ?????????? ????
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(
new Runnable() {
public void run() { new GridLayoutSample(); } ));
}
}
11. ??????????????? ??????? ?? ??? ?????
12. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
????? 11
????????? ?????? ??????? ???????????? ?????????
?????? ??????? ???????????? ????????? ????????? ??? ??????????????? ??? ??????? ??????? ????? ??? ???????????????? ????????? ? ???????? ???????????? ? ??? ??????????????? ??? ???????????? ?????? ??????? ?????????, ??? ??????? ??? ?????????? ???????? ????? ?????????, ??? ????????? ??????????? ?????????? ? ?. ?. ?? ??????????? ????????????? ?????? ???????????? ????????? ? ????? ??????????? ???????? ? ????? ??????????? ??????????.
� 1. ??????? ???????????? ????????? ??????? ?????? ????????? ???????????? ??????
? ?????? ????????? ??????? ??????? ???????????? ????????? ??????????????? ????????? ???????? ??????. ????? ??????? ????????????? ????????? ?????????? ??????? ????
??????? ? 25
13. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????? ???????? ?? ??, ??? ? ??????? ???????? ???????????? ?????????? ?????-
??? - ??? ????? ? ???????????? ?????? ??????????? ????? ???????? ??????????? ????.
?????????? ????? ?????? ? ???????????? ?????????? ????? ? ???????. ???????, ?????
??? ????? ?? ???? ??????. ? ????? ??????? GridLayout ???????? ?????????? ???, ?????
??? ?????????? ? ??? ????, ???????, ??? ????? ???????? ??? ????? ???????? ???????.
????????? ????????? ? ???? ???????? ? ?????????? ??????????? ????????? ???- | ??? ????. ?? ???????, ??? ???????? ???????????? GridLayout ????? "??????????" - ?? j ???????? ??? ?????, ????????? ? ?????? ?????? ? ????, ?? ??? ? ???? ?? ?????????? ] "?????????" ???? ??????????. ???? ?? ?? ????????? ????, ?? ?????????? ?????? ?? ????????, ??? ??? ???? ? ?????? ? ???????????????? ????????????? FlowLayout, ? ?????? ????? ?????????? (?????? ?? ????, ??? ?? ??? ?????? ?? ?????? ?????). ???? ??????????? ???????? ???????? ?????????? ????????????.
� ??? ?????????? ????? ?????????? ??????. ????????? ???????????? ????????? ? ????????? ????????????? ??????????? ?? ?????????? ?????????? ?????, ? ???- |
??? ?? ??????? ?????????? ?????????.
� ??? ?????????? ?????? ????????? ?? ?????, ??? ?? ?? ???? ?????? ??? ???????????? ????????????.
???? ????? ?? ?? ?????, ????? ?????????? ???? ??????? ?????? ??? ??????? "*- , ??, ??????? ????? ?????? ????? ????? ????????? ?????? ? ????????? ??????????":*
G'idLayout ? ?????????????? ?????? ? ???????????????? ????????????? FlowLayout, ??????? ????????, ??????? ?? ?????? ???????????? ? ??? ?????????? ?????? ?? ??????- -??????????? ???????, ??? ???????????? ?????? ???????????? ? ?????? ?? ?????????? GridBagLayout). ????? ????????????????? ?????????, ???????? ??????? ????????????????? ??????????, ????????????? ??????????? ? ????? ?????????? ????, ? ?????? ?????? ?????? (?????? ??? ?????? ?? ? ??????). ????????? ???????????? ??????? ??????? ?????????? ??????, ? ???????????????? ???????????? ?? ???? ?? "??????????" ? ?????? ????????? ?? ?? ??????? ????:
// CommandButtons.java // ???????? ?????? ????????? ?????? importjavax.swing.*; importjava.awt.*;
public class CommandButtons extends JFrame { public CommandButtons() { super("CommandButtons"); setSize(350, 250); setLocat'ion (150, 100);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ??????????????????????????????????????? // ?????????????????????????? JPanel grid = new JPanel(
new GridLayout(1, 2, 5, 0) );
// ???????????????????grid.add( new JButton("OK")); grid.add( new JButton("??????"));
// ???????? ?????????? ? ?????? ? ???????????????? // ?????????????, ??????????? ?? ??????? ???? JPanel flow = new JPanel (
new FlowLayout( FlowLayout.RIGHT )); flow, add (grid) ;
// ???????????????????????????? add (flow, BorderLayout. SOUTH );
// ??????? ???? ?? ????? setVisible(true);
)
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {i
public void run() { new CommandButtons(); } });
}
}
? ???????????? ?????????? ???????????? ?? ????????? ???? ??? ? ????? ?????????, ? ??????????? ????? ???????????? ?? ????????? ? 5 ????????. ??????, ??? ?? ?? ?? ???????? ?????? ????, ? ????? ?? ???????????? ??????? ?? ????????? ???? ??????????, ??? ???????????????? ????????? ???????? "?? ??????": ???????? ???????????? ???????? ?????? ? ???????? ???????????? ????? ?????? ??????? ????, ????????? ???????????? ???????? ? ???????????? ???????? ??????, ? ???????????????? ???????????? ???????? ?? ????????? ? ?????? ????.
? ?????????? ??? ???????? ????????? ?????????? ???? ?? ?? ??? ????? ????????- ???? ???? ??????.
???????????? ??????? ? CardLayout
???? ???????? ???????????? CardLayout?????????????? ? ??????? JDK? ????? ?????? ??????, ??? ???????? ????????????????? ?????????? ?? ??????????? ?? ??????????. ???????? CardLayout?? ????????? ?????????? Swing ????????????? ??? ???????? ??? ?????????? ??????? (tabs), ??????? ???????, ????? ???? ?????????? ????????? ?????? ? ???????, ?????????? ???? ? ?? ?? ?????. ? ?????????? Swing ??????? ??????????? ????? JTabbedPane, ??????? ????? ??? ?????? ?? ??????????? ??????? ?? ????, ? ??? ???????? ???? ????????? ??. ?? ??? ?????? ??????.
????????? ?????????? CardLayout???????? ???????????? ?????????, ???????? ?? ????? ?????????? ???????, ??????? ????????????? JTabbedPane, ?? ????? ??????????? ???????????, ?? ????? ?????? ?????????, ?????? ???? ?????? ?? ??????. ?? ????? ??????????? ????? ??????????? ? ??? CardLayout- ?????????? ?????? ?? ?????????? ?????? ?????? ??????? remove(), ???????? ????? ??????, ? ???????? ???????? ???????????? ?????????? ??????? revalidate(). ????? ???????, ??????? ?????????? ????????? :CardLayout?????? ?????????? ? ?? ???? ?? ?????? ????????????? ??? ?? ???????.
14. ??????????????? ??????? ?? ??? ?????
15. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??? ??????? ???? ?????? ????? ???? ????????? ??????????? ?????? ??????? ?????? ???????? ?????????????? ?????????.
????? ????????????? ?????? ???????????? ?(?, s) ? f(x). ??????? ???????? ?? ????????? ??????????????. ???? ???? ?(?, s) ????????????? ????????? G ??????????? (K(s, ?) = ?(?,s)), ?? ????????? - G, ???????? ? ????? ????? ????????? ????????? (2), ????? ???????????.
?????? ??????? ??????? ????????? (9) ?? ??????????? ????? ????????????. ?? ?????? ?????, ??? ??????? ?????? ????????? ? ???????????? ???????? ? ???????????? ?????? ???????????????? ??????? ??????? ????????? ? ?????????????? ????????: ???? ????? ?????? ? ???????????? ???????, ??????? ????? ???? ????????? ??? ??????? ????? ??????.
??????? ? 26
16. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????? ???????????? SpringLayout
? ?????? ?????????? JDK ??????? ????????????? ???????? ????????????, ???- j ?????? ?????? ???????? ??????, ???? ?????? ???????? ???????????? ???????????. ??? ???????? ???????????? SpringLayout ?? ?????? javax.swing. ?????? ???????? ?? ???????????????, ???????? ??? ?????? ?????????? ? ?? ?????? ?? ???????? ?? ?????? ?? ??? ???????? ??? ?????????? ????????????. ? ?????? ??????????? ????????????? ?????? ?????????????? ?????? Spring, ??????? ????????? ?????? ?????????? (? ????????) ????? ????? ?????? ????????? ???????????. ?????? ? ?????????? ?????? - ??? ??? ????????, ?????????, ???????? ? ????? ???????. ????? ???????? ?????????? ? ????? ????????? ?????? ? ???? ?? ??????????: ????????, ????? ?????????? ????? ???????? ? ????? ????????? ?????? ??????????, ?? ??????? ??? ??????. ?? ??????-
??? ??? ?????????? ????? ???????????????? ??????, ?????? ???????? SpringLayout ????????? ????????? ? ??? ????????? ???????, ?? ????? ?????????? ?????? ???????????? ? ?????? ????????????? ????????.
?? ?????? ????? ?????? ????????? SpringLayout ??? ?????????? ????????? ? ?????? ????????? ?????????? ? ????? ???????????????? ??????. ????? ?????????? ?? ?? ?????? ????????, ?????? ???????? ????????? ????????: ?????? ????????? ???????? ????????? ??????????? ?? ??????? ??????????, ?????? ???????? ?? ??????? ??????????? ????? ??????? ?????????, ????? ????????? ?????? ????????? ? ?. ?. ?????????? ????????? ?????? ? ?????? ??? ? ????????:
// SpringLayoutSample.java // ?????? ????????? SpringLayout import javax.swing.*; import java.awt.*;
public class SpringLayoutSample extends JFrame { public SpringLayoutSample() { super("SpringLayoutSample"); setDefaultCloseOperation(EXIT_ON_CLOSE);
// ?????? ? ?????????????? SpringLayout SpringLayout si = new SpringLayout();
JPanel contents = new JPanel(sl);
// ??????? ???? ??????????? JButton buttonl, button2;
contents.add(buttonl = new JButton("??????")) ; contents.add(button2 = new JButton("?????????"));
// ???????? ????????
si.putConstraint(SpringLayout.WEST, buttonl,
5, SpringLayout.WEST, contents); si.putConstraint(SpringLayout.WEST, button2, 5,
SpringLayout.EAST, buttonl);
// ??????? ???? ?? ????? setContentPane(contents); setSize(300, 200) ; setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() { public void run() { new SpringLayoutSample(); ) });
}
}
?? ??????? ????????? ???? JFrame, ??? ??????? ??????????? ???????? ?????? JPanel, ???????????? ???????? ???????????? SpringLayout. ? ?????????? ?????? ??????????? ???
???????? SpringLayout???????? ????? ? ?????, ?? ?????????? ?? ???????????? ??? ???????? ?????????? "???????". ??????????: ????? ??????????? ??????????, ????? ??? ?????? ?? ???, ?????????? ??????????? ??????????? ?????????? ?????????? ????? ????, ? ???????? ?? ?????? ???????? ???????????? ?? ??????? ??????????? ??????? ???????????? ? ???????? ?? ??????? putConstraint(). ???????????? ????? ??? ????? ??????, ? ??? ?? ???????????: ???????? SpringLayout????????????, ?????? ?????, ??? ??????????????????? ?????????? ??????????, ? ??? ?????? ?????? ???? ????? ??????? ??????.
?????????? ????????????
????? ?? ?????????? ?? ???????????? ????????????? ? ?????????? ????????? ????????????, ?? ?????? ??????? ???, ?????? ????? setLayout(null). ? ???? ?????? ??? ??????????????? ?? ?????????? ???????????? ??????????? ?? ?????? ??????? ?? ???? ?????: ??????? ? ??????? ??????????? ???????? ???????? ????? ? ?????????, ??????? ??? ??????? ?????????? ????? setBounds() ? ?????????? ???????????????.
??????? ?? ??????????? ?????????? ????????????, ????? ???????? ??????? ?? ???? ????????? ???? ?????? Java-????????????, ??????? ?????? ??? ???. ??? ???????????? ???????????? ????? ???????? ???? ?????????? ?????????? ?????????? Swing, ??? ???????? ???????? ?? ?????? ????????? - ??? ????? ?????????? ? ???? ? ?????? ??????????? ????????????. ???????? ? ??? ???, ??? ????? ??? ???. ???? ???? ???????? ??????????????????? ?????????? ?????????? ?????????? ????????????? ????????? ? ?????????? ???????????, ? ????? ?????????? ???????? ???????? ??, ??? ??????????, ? ????????????, ???????????????? ??????-???? ????????? (? ?????????? ??? ??? ????? ?????????? ???????????? ?????????? ????????????), ????????? ??? ????????.
???????????? ???????, ? ??????? ?????????? ????????? ?????????? ????????????, ???????? ??????????? ??????????, ??? ?? ?????? ??? ??????????? ?????????? ?????? ?????????? ??????????, ????????, ??????? ????????. ????? ??? ????? ??????????? ????????? JXLayer??? ?????????? ?????? (glass ????), ??????? ?? ????????? ? ????? 6.
????????? ????????????
? ?????????? ???????, ???????? ????????? ? ???????????????? ????????????, ?? ????????????? ? ???????? ??? ??????????? ?????????? ???????????? (nested layou:*" ???????? ???? ???????? ????? ?????? - ?? ???????? ????????? ??????????? ? ??????
???? ??????????? ????????????, ? ????? ?????????? ?? ???? ? ????? ??? ????????? ???????? ??????????. ???????? ??????????????? ??????? ????????? ????????????, ????? ???????? ????????? ?????? ???????????? ???????????.
? ????????, ??????? ???????????????? ????????? ?????? ????? ??????? ?? ?????? ????????????? ???? ?????????? ????????????. ??, ?????? ??????, ???????? ?? ????? ??????? ???????, ???????? ??? ???????? ???????????? ??????????? ?? ?????????. ? ?????, ????????????? ???? ?? ????? ???????????? ????? ??????????? ???????? ? ??????????? ????? ???????????? - ??? ????? ?????? ???? ???, ?????? ????? ??? ???? ???????? ? ???????????? ???????????. ????? ???, ? ???????????? ?????????? ?????????? ????? ???????????? ?????? ????????? ????, ? ???? ????? ????? ??????? ???????????? ??? ??????. ??????? ????????? ??????? ????? ?????????? ? ??????? ???? ???? ??, ???????, ?? ??????, ? ?????????? ????????????? ????????????, ??????????? ??? ???????? ????????????????? ?????????? ???? ??????.
17. ??????????????? ??????? ?? ??? ?????
18. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
? ?????? Cj> 0 ?????? ?????? ????????????? ???????? ????? ????????????????, ????????? ??????? ??????????? ???????? ? ??????? ??????? (11), ??? ???????, ??????, ??? ? ??????? ??????? (10).
???????, ??? ? ??????, ????? ? ?????????? (6) ??? ???? ?????????:
???????, ??? ? ? ?????? ??????? ???????????? ?????? ???????? ?????????????? ?????????, ??? ????????????? ??????? ?????? ??? ??????????? ????? ? ???????? ?????????? ????? ?????????? ???????? ??????? ?? ???? ??? ????????????.
??????? ? 27
19. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??????? ???????????? BoxLayout
??????? ???????????? BoxLayout- ?????????? ???????????? ???? ????????? ?????????? ????????????. ?????????? ???????? ????????????? ???????????? BoxLayout?? ??????? BorderLayout.
???????? ???????? ???????????? ??????????? ?????????? ? ????????? ???????: ????????? (?? ??? Y) ??? ???????? (?? ??? X), ??? ???? ?????? ????????? ????????? ????? ??????????? ?? ??????, ?? ?????? ??? ?? ??????? ?????, ? ????? ?? ????? ??? ?? ????. ?????????? ????? ???????????? ?? ????????? ???????, ?? ??? ??? ??????? ?????????? ??????????? ?????? (?? ???? ???? ?????). ??? ????????????? ??????????, ?????? ????? ?? ???. 7.1
public Boxl() {
super("Boxl - Y"); setSize(400, 200);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ????????????????????????? Container ? = getContentPane();
// ????????????? ??????? ???????????? ??
// ??? ? (?????????)
BoxLayout boxy = new BoxLayout(c, BoxLayout.Y_AXIS)
c.setLayout(boxy);
// ??????????????????? c.add( new JButton("????")) ; c.add( new JButton("???")); c.add( new JButton("???")) ;
// ??????? ???? ?? ????? setVisible(true);
>
static class Box2 extends JFrame { public Box2() {
super("Box2 - X");
//' ????????????? ?????? ? ??????? ????
setSize(400, 200); setLocation(100, 100);
setDefaultCloseOperation( EXIT_ON_CLOSE );
// ???????? ?????? ??????????? Container ? = getContentPane();
// ????????????? ??????? ???????????? ??
// ??? X (????????)
BoxLayout boxx =
new BoxLayout(c, BoxLayout.X_AXIS);
?.setLayout(boxx);
// ???????????????????c.add(new JButton("????")); ?.add( new JButton("???")); c.add( new JButton("???"));
// ??????? ???? ?? ????? setVisible(true);
}'
}
public static void main(String[] args) { SwingUtilities.invokeLater(
?? ?????? ??????, ??? ??????????? ?????? BoxLayout????????? ???????? - ??? ?????????? ??????? ?????????, ? ??????? ?? ????? ???????????????. ?? ? ????? ?? ????????????? ???? ?????? ?????????? ???????????? ?????? ?? ???????????. ???????, ????? ?? ??????? ??????? ???????????? ???????, ? ???????????? ??????????????? ????? Box?? ?????? javax.swing. ? ??? ?????????? ??? ??????????? ??????:
public static Box createHorizontalBox()
public static Box createVerticalBox()
??? ?????? ?????????? ????????? ?????? Box, ??????? ?????? ?????????? ??? ????????? ???????? ???????????? ? ??????????? ?? ???????? ?????? Swing JComponent. ??????? ??????? Box?? ?????? ???????????? ??? ??????? ?????????? ??? ???????????, ?????? ? ??????? ????????????? ??????? ?????????????. ?????? ????? ?????????? ????????? ? ?????????????? ??????? ?????????????, ?????? - ? ????????????.
?????? ?????????, ??????? ????????? ??????? Box, ?? ?????? ??? ?? ???????, ??? ??????? ?????? JPanel. ???? ? ???, ??? ??????? ??? ?????? ?????????? Swing, ??? ?? ?????, ???????????? UI-?????????????? ????? ??????????. ??? ????? ? ??? ??????? JPanel, ? ?????? ???????? ???????? ????????? ??????? ???? ?????????? ?????????
// BoxStruts.java
// ????????????? ???????? ??? ??????? ???????????? importjavax.swing.*;
// ?????????? ??? ????? ?????
importcom.porty.swing.BoxLayoutUtils;
public class BoxStruts extends JFrame ( public BoxStruts() { super("BoxStruts"); setSize(250, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE );
// ??????????????????????????????????????? JPanel ? = BoxLayoutUtils.createVerticalPanel(); p.add(new JButton("????"));
// ???????? ???????????? ???????? p.add(Box.createVerticalStrut(15)) ;
// ????? ????????? ? ???????? ??????? ??????? p.add(newJButton("???")); p.add(Box.createVerticalStrut(5) ) ; p.add(newJButton("???") ) ;
// ?????? ? ?????????????? ??????? ????????????? JPanel ?2 = BoxLayoutUtils.createHorizontalPanel() // ???????? ????? ??????? ? ????? ???????????? ?2 . add(Box.createHorizontalStrut(10)); ?2.add(newJButton("????"));
// ???????? ?????????????? ???????? ?2.add(Box.createHorizontalStrut(25)); ?2.add(newJButton("???"));
// ????????? ?????? ?? ????? ? ?? ???? add(?, "North"); add(p2, "South");
// ??????? ???? ?? ????? setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable 0 ( public void run() { new BoxStruts(); ) ));
\
20. ??????????????? ??????? ?? ??? ?????
21. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
??? ?? ??????? ????? ???? ????????? ??????????? ?????? ??????? ????? ?? ??????????? ????????.
????????, ??? ???????????? ?? ?????? ??????????? ???????? Ai ?????? (14) ????????????. ????????, ??? ????? ??????????? ????????, ??????????????? ????? ???????????? ????????, ??????? ??????, ? ???????? ??? ?????????? ??????????????.
??????? ? 28
22. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
????? 7. ????????? ????????????
??? ?? ??? ????? ????????? ?? ?????????? ????????, ?????????? ??????????? ?? ????? ? Java ?????????? ?????????? ????????. ?? ???????????? ????? add(), ?, ??? ?? ??????????, ?? ????? ?????????? ???? ?????????? - ??????, ???????, ????????? ????. ??? ????? ?????????? ????????, ?????? ??? ??? ???????? ?????????? ?????????? ????? ????????? ?????? ?????????? ? ??? ???????????? ?? ?????? - ?????? ????? ??? ????? ???????????? ??? ?????????? "??????????" ??????????, ????????? ????????? ?? ??????????? ??????????? ?????? ? ??? ????????. ????? ????????? ?????? ? ?????? ????????????, ??? ?? ???????? ? ??????????? ??????????? ???? ?????????? ???????????? ?????????? ????????, "????????? GUI". ??????? ?????????? ????????? ???????. ?? ???????? ????? ??????? ????? - ?????? ???? ? ?????? ??? ?????????? ???? - ? ???????????? ?? ??? ??????????? ??? ??????????, ??????? ??? ??? ?????????? ??????? ? ???????. ????? ????? ???? ????? ???????????? ? ?????? ????????, ??????? ??? ?????????? ????????? ?????????????? ? ????????? ? ??????????? ??? ?? ???????. ??? ????? ?????? ? ??????.
?????? ???????????, ??? ????????????? ????? ?? ????? ? Java ???????? ?? ?????? ?????. ???? ????? ???? ??????? ????????? ????? - ?? ????? ????????, ??? ????????? ?? Java "??????? ???? ???, ? ??????????? ?????". ???? ?? ?? ?????????? ?????? ???????????? ??????????, ??????????? ?? ??? ??????????? ? ??? ???? ????? ????? ? ??? ?????????, ??, ???????, ?? ?? ??????? ????? ???????? ?????????, ?????????????? ??? ?????? ???????????????? ???????????? ???????, ??? ???? ????????? ?? ?? ???????. ???????????? Java ????? ??????? ???????, ??????? ? ????????? ????? ??????????. ?? ? ????? ?????? ???????? ???-?? ?????? ??? ???????? ????? ????? ????????????? ????????? ? ????????????? ? ??? ???????????? ???????? Java - ??????????? ????, ????????????? ?????? ? ????? ??????? ??????????? ?????????? ?????? ?????? ? ????????? ???, ? ??????, ???????? ??????? ???? ????????, ????????? ?? ?????. ??????????? ?? ???? ???????????? ???????? ?????????? ????? ???? ???????????, ? ??????, ????????? ?????????? ?? ???????? ??? Windows, ? ?????? ???????????? ??????? ????? ????????? ??????? ??????? ??? ??????? ?????????. ???, ????????, ? ?????????? ???????????? ?? ?????? ??????? ??? ?????? ?????????? ????????? ? ??? ???? - ? ?????????, ???????????? ?????????? ??????? ? ?????????? ??? ?????? ???????, ?? ?????? ?????? ?? ??????. ??????? ??????? ??????? (????? ???????? ????????? ?????????? ? ??? ????????) ? Java ?? ?????????.
???? Java ??????? ????? ????? ???????????? ????? ??????????? - ?? ????? ?????????? ???????????? ?????? ????????? ????????? ??????????? ?????? Java. ?????? ???????? ?????? ??????????? ???????????? ??????????? ?? ????? - ????? ?????????? ???????? ? ????????????? ?? ?????????? ????????. ??? ??? ???????????? ???????? ???- ????????? (layoutmanager), ??????? ?????? ????? ?????? ???? ? ?????????? ????????????????? ??????????. ???????? ???????????? - ??? ????? ??????????? ??????1, ??????????????? ? ?????? (? Java ?????? ??????? ? ???????????) ? ????????????, ????? ??????? ?? ??? ????? ????????????? ??????????. ?????????? ?? ?????????, ??????????? ??????, ?????????? ? ???????? ?????? ???????? ???????????? ???????????, ???
' ?? ????? ???????? ?????????????? ???????? ???????????? ????? ??????? ??? ?????????- ???????? ???????????? ???????????, ????????????? ?? ??????? ??????, ???? ???????? ????? ????? ? ?????? ?????????? ? ??? ????????????? ???????.
?????????? ????? ????? ???????????????? ??? ??????? ? ???? ?????? ? ????????????? ? ??? ???????, ??????? ??? ?????? ????????????? ??????????? ?????????.
???? ???????, ??? ? Swing ???????? ???????????? ?????? ??? ??????? ????, ??? ??????. ?? ????????? ?? ?????? ???????? ???????? ????? ????????????? ?????????, ?? ? ???? ??????????? ?????? ? ????????? ??????? ??? ??????????, ?? ????????
????, ??? ??? ???? ?????????? ??????? ? ???????????? ???????????. ?? ????? ????, ????????? ??????? ???? ?????????? ??????? ??????????? ????????? ???????, ? ???? ?? ?? ?????? ???????????? ???????? ???????????? ??? ?????? ??????????, ??????? ?? ?????? ???????? ???? ? ??????? ????? ????? ??????????? ???????.
? ???? ????? ?? ??????, ??? ????????????? ????????? ???????????? ? ??? ???????? ????? ?????? ??? ?????? ? ????. ????? ????? ?? ???????????? ?? ???????????? ??????????? ????????????, ??????? ? ??????????? ????? ????? ??????. ?????? ????? ??????????, ??, ??? ???????, ??????? ?????????? ??????? ?????????? ????????????? ??????????, ? ?????? ????? ???????? ?? ?????? ???????????? BoxLayout, ???????, ???? ? ???????? ???????????? ???????, ???????? ?????????? "???????" ????????? ????????????????? ??????????, ? ??????? ?????????? ???????????? GridBagLayout, ? ????? ??? ???????????.
? ??????? ????????? ??? ?????? ? ???????????? ? ?????????????? ??????? ?????????????. ??? ????? ???????????? ????? BoxLayoutUtils, ????????? ? ?????????? ???????. ????? ???????????? ???????? ???????? ????????? ????????, ????????? ??????? Box- ??? ???????? ???????????? ???????? ???????????? ????? createVerticalStrut(int), ? ???????? ????????? ???????? ??????????? ?????? ???????? ? ????????. ?????????? ???????? ????? createHorizontalStrut(int), ????????? ?????????????? ????????. ????? ????? ?? ????????? ???????????? ???????? ????? ???? ??????? ??????????? ??? ????? ???, ????? ?????????? ?? ?? ?????? ????.
??????, ???? ????? ??????? ?????? setVisible() ?? ???????? ????? ????(), ????????? ???? ? ???? ???????????? ? ??? ??????????? ??????????? ?????? (??????????? ?????? ???????????, ??? ?? ???????, ?????????? ????? getPreferredSize()), ?? ???????, ??? ???????????? ????? ? ???? ???????. ??? ??? ? ?????? ???? - ????? ????? ? ?????????? ??????? ?????? ?????? ??? ????, ??? ?????????? ??? ??????? ?????????? ? ????????, ?? ??????????? ????? ???? ????? ??????? - ??? ??????????? ? ???????????????? ??????? ?????????? ????????.
????????
??????????? ???????? ???????????? ????????, ?????? ??? ????? ?????????????? ???????????? ??????. ????? ? ?????????? ? ??????? ????????????? ??????? ?????????? ????????????, ??? ??????? ??????? ????? ????????????, ??????? ??? ????? "?????", ?? ???? ?? ???????? ????????????? ???????. ????????? ??????????, ???????? ?????? ????????? ? ?????????, ????? ????? ?????, ? ???? ?????????, ??? ????????? ???????????? ????????? ??????? ????? ???? ? "?????????????". ????? ? ?????????? ?? ???????? ???????????, ????????? ?????, ??? ?????????? ???????????? ??????????? ????? ???????????, ????? ??? ??????, ? ??????????? ?? ????????? ??? BoxLayout.
????? ??????? ????????? ? ???????? ? ???, ????????, ?????? ??? ???? ??????. ?????? ?????? ????????????? ??? ???????? ???????????? ???? ?????? ???????????? ??? ?????? ????????? ?? ? ????? ??????? ????, ??? ? ?????????? ????????, ? ???-?? ?? ????? ???????, ????? ? ??? ????????. ???? ? ???, ??? ??? ??????? ???????? ?? ?????????? ????????? ???????????? ? ?????? Component????????????? ??? ??? ?????????, ???????? ???????????? ?? ???? X ? Y, ? ???????? BoxLayout?? ??????? ??????????. ??? ????????? ??? ????????? ???? ?? ??????, ?? ?????? ? ????????? ???????.
???????, ? "????????" ? ?????? Box??????? ??? ???? ???????? ??????? ?????????? - ????????????? ???????. ?????????? ?? ???????? ?????? ?? ???????? - ??? ??????? ??????????, ?????? ?????????, ? ?? ?????? ?? ??????? ????. ???????? ??, ?????? ?? ??? ?? ??? ?? ??????, ? ??????????? ??????????? ??????? ?????? ?????????? ???????? ? ????????????, ?????? ?????? ?? ?????? ??? ??? ?? ??? ??????. ? ?????? ?? ?????????? ?????? ? ?????????????? ?????????:
// BoxRigidAreas.java
// ?????? ????????????? ????????????? ???????? import javax.swing.*;
import com.porty.swing.BoxLayoutUtils; import java.awt.*;
????????? ????????? ? ???????? - ???????????? ?????? ????? ???????? ????-?? ? ???????? ????. ?????? ?? ??????? ??? ???????? ??? ????????, ? ????? ???????????? ????? ? ??? ? ?????.
23. ??????????????? ??????? ?? ??? ?????
24. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
? ????? ??????? ??????? ????????? (9), ? ??????? ???? ??????? ????????? ????????? ???????? ????? ?????????? ?????? ? ?????? I ??????? ? ????????. ?????? ??????? ?? ?????? I ????????? ??????? (9) ???????????? I ????????-
???? ???? ?(?, s) ? ?????? ????? /(s) - ????????????? ???????, ?? ?????? ?????????????? ???????????? ???? ?????? ?????????? ?????? ??????? ??????? ???????????????? ?????????. ? ???? ?????? ????????? ??????? ????????? ? ????????? ??????????? ????????, ?? ??? ???? ??????????? ??????? ???????
??????? ? 29
25. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????? ? ??????????
???????? ?????????? ?????????? ??? ???????? ??????????? ? ??????????? ???????? ???????????? ???????????, ? ??? ?? ??????????, ?????? ?? ???????? ?????? ????????? - ?? ?????? ????????? ???????????? "??????" ????? ????????????. ?????? ????? ???????????? ???????????? ???????????, ??? ????????? ????????????? ? ??????????, ?????????? ??????? Box. ???? ? ???, ??? ???????????? ?????? ?? ?????? ??? (? ???????, ?? ????????? ??? ?????????????? ????????) ???????????. ??? ?? ??? ????????, ??????? ???????????? ??? ??????? ?????????? ???????????? ? ?????????? ???????????? ??? ??????? ????? ????????????, ??????? ????? "?????", ??? ?? ????????? ????????????? ???????. ??? ???, ???? ? ?????? ? ??????? ????????????? ?? ??????????? ??????? ??????????? ????????, ????? ???????????? ?????? ?????? ?? ????????? ????? ???????????, ? ???, ??? ???????, ?????? ?? ??? ??????, ???????? ?? ????? ????????. ???? ????? ???????? ? ? ????????????? ?????????? ? ???????????? ??????.
??????? ????? ??????? ???????? ?????, ?? ???????? ???????????. ??? ??? ??????? ????????????? ???????, ? ??????? ???? ?????????? ????? ?????????, ? ?????? ?????? ???????. ?????? ????? ????????? ??? ? ????????? ??? ?????????? ???????????. ??????? ? ??? ??????????????? ????? BoxLayoutUtils ??? ???? ??????? ???????:
// com/porty/swing/BoxLayoutUtils.java
// ????? ??? ??????? ?????? ? ?????????? BoxLayout
package com.porty.swing;
import javax.swing.*;
public class BoxLayoutUtils {
// ??????? ?????????????? ????????
// ?????????????? ???????
public static Component createHorizontalStrut(int size) { return Box.createRigidArea(new Dimension(size, 0));
}
// ??????? ???????????? ????????
// ?????????????? ???????
public static Component createVerticalStrut(int size) { return Box.createRigidArea(new Dimension(0, size));
)
// ????? ???? ??????, ????????? ????? }
???? ???????? ??????? ?? ?????? ??? ???????? ??? ????????????? ???????? ? &- ??? ????????? ?? ?? ???????, ??? ? ??????????? ???????? ?? ?????? Box, ?? ???????.-?- ??? ??? ???? ?????????????? ????? ???????????? ?????? ??????. ? ???? ??? ????? ????? ????????? ???????????? ?????? ??????, ?? ?????? ????? ??????? ??? ???????
???????????? ??????????? ?? ????
???????????? ?? ???? - ?????????? ????????? ?????? ?????? ????????? BoxLayout, ? ???? ?? ????? ???????, ???????????? ?????? ????? ?????????? ????????? ??????????????? ????, ??? ?????????? ????????????. ??? ????? ???? ??????????, ??? ????????? ??????????? ??? ??????? ???????????? ?????? ??????????????. ???????, ?? ??? ??? ???????, ? ?? ??????????? ??? ?????? ?????????? ?????????? ? ????????????? ?? ????.
?????? ????????? (?????????????? ?? ?????? java.awt.Component) ????? ??? ?????????, ???????? ??? ??? ???????????? ?? ???? X ? Y, ?? ???? ??? ??? ????? ??????? ?????????? ? ??????????. ??? ??? ?? ???? ?????????? ??????? ???????????? ??????, ??? ?????????? ????????????? ?????? ????. ?? ????? ???????? ???????? ?????????????? ??????? ??????????? (?? ???? ??????? ?? ??? X) ????? ?????? (???????????? ??????? ?????? ?????? ?????????? ???????????, ???????? ? ????????????) - ????????? ?? ?????, ?????? ??? ?? ??????. ??? ???, ??????? ??? ????? ???????????? ?? ???? ??????.
????????
???????????? ??????????? ?? ???? ?? ?????????, ??? ??? ????? ?????????? ?? ?????? ??????, ???????? ??????? ??????????? ???????????? ??????????. ??? ????????? ?????? ????????? ??????????? ???????????? ???? ?????, ?? ???? ???????????? ????????? ???????????, ??????????? ? ??????????. ?? ???? ??????? ???????????? ???????? ???????????? ?? ???? ??? ??, ??? ? ??? ???????????????? ???????????? (FlowLayout), ???????? ? ???????.
?? ????? ???? ???????????? ?????????? ? ???????????? ????????????? ????? ???????? ????????????? ?? ???????????? ? ???????? ????????? ???????????. ??? ??????????????? ???????????? ? ?????? Component ?????????? ????????? ?????????:
� Component.CENTER_ALIGNMENT - ???????????? ??? ????? ????????? ????? ???????? ??????????;
� Component.LEFT_ALIGNMENT - ????????? ????? ?????? ? ???????????? ??? ????? ????? ????????;
� Component. RIGHT_ALIGNMENT - ????????? ????? ?????? ? ???????????? ??? ????? ?????? ????????.
??? ??????? ???????????? ????????? ???????????? ??? ???????????? ?? ??????????? ? ??????????? ?????????????, ? ??? ????? ????? ?????????? ? ??????? ??????????? ???????????? ??????????? ???????????? ???? ???. ???????????? ?????????? ???????? ???. 7.2.
?????????? ??????? ???? ? ???????????? ????????????? (?? ??? Y). ????????? ??- ??? ???????????? ? ??????? ? ?????????????? ????????????? ???????????, ? ????????? ???????? ???????????? ??????? ??????????? ???????????? ???? ????? (?????????????? ??????? ???????? ????? ?????????????). ? ?????? Component ??? ????????????? ???????????? ?????????? ????????? ?????????:
� Component.CENTER_ALIGNMENT- ?????????????? ??? ????? ????????? ????? ???????? ??????????;
� Component.TOP_ALIGNMENT- ????????? ????? ?????? ? ?????????????? ??? ????? ??????? ????????;
� Component.BOTTOM_ALIGNMENT- ????????? ????? ?????? ? ?????????????? ??? ????? ?????? ????????.
??? ? ?????, ??? ?????????? ? ??????????? ????????????? ??? ????? ????????? ????? ??? ???????? (???. 7.3, ?????).
???? ??? ?????????? ????? ???????????? TOP_ALIGNMENT, ?? ??? ???????? ?????? ??????????, ? ??? ?????????? ??????????? ? ??? ??????? ????????, ??? ???????? ?????? ?? ???. 7.3. ????? ??? ???????????? BOTTOM_ALIGNMENT ???????? ??????????,
?????? ??? ???????? ????? ??????????, ? ??? ?????????? ??????????? ? ??? ?????? ????????. ??? ?? ??? ??????????????????, ??? ????????????? ???????????? ??????????? ????? ???????, ??? ???????????? ??? ??????, ????? ??? ?????????? ? ??????????
????? ?????????? ????????????.
??????, ???? ?? ??????????? ???????????? ?? ?????? Component, ?? ???????, ??? ???
??????? ?????????? ???????????? ??????????? ???????????? ????? ? ????????? ??????? (float) ?? 0 ?? 1. ????? ???????, ??? ??? ??????????, ????? ????? ?????????? ????????? ?? ????. ???, ????????, ????????? RIGHT_ALIGNMENT ? TOP_ALIGNMENT ????? ????. ??? ??????, ??? ???? ????????? ????????? ?? ???? ??????? ?? ??? (? ?????? ??? ? ?????? ???????, ??????????????). ???? ??????????? ???????? ????????????, ?? ????????? ????? ?????????? "???????????" ?? ??? ?, ? ????? ??????, ???????? ?? ?????? ?? ???????. ????????? LEFT_ALIGNMENT ? BOTTOM_ALIGNMENT ??? ??? ????? ??????? (?? ???? ????????? ????????? ??????? ?? ????). ??? ??? ??? ??????? ????? ?????? ??????????, ??? ??????? ????????, - ???????? ???????? ????????????? ???????? ????????? ????????? ???????????? ???????????, ?? ?? ????? ?????? ? ???????? ????????? ???? ????????, ??? ????????? ????? ????? ??????????? ?????????? ???????????? ???? ?????.
???? ??? ??? ??????? ??????????, ???????? ?????? ?? ????? ?????????? ???????????? ???????? ???????????? ??????????? ???????. ?????????? ??????, ? ?????? ?????? ?????????? ???????????, ??? ?????????? ?????????? ? ??????????, ????? ????????? ???????????? ??? ??? ?????? ???????? ????????????.
? ?????? ???????, ??? ?????? ????? ?????????? ?????????? ??????? ? ???????
?????????????, ?????????? ?? ????????? ??????????? ? ?????????? ?????????????. ????? ???????????????? ????????? ????? ??????? ?? ?????????????? ? ???????????? ?????? ? ????????????, ???????? ??? ??? ???????? ??????. ?????? ????? ?????? ???????? ?????????? ???? ?????????? ???????????? ????????????, ? ?? ???????? ??????????? ??? ???. ? ????? ??????? ?????????? ???????????? ??????????? ?? ???????? ? ??? ??????? ????? ??????? ? ???, ??????? ? ??? ??????????????? ?????
BoxLayoutUtils??? ???? ???????:
// com/porty/swing/BoxLayoutUtils.java// ????? ??? ??????? ?????? ? ?????????? BoxLayout
package com.porty.swing; import javax.swing.*; public class BoxLayoutUtils {
// ?????? ?????? ???????????? ?? ??? X ??? // ?????? ???????????
public static void setGroupAlignmentX(float alignment,
JComponent... cs) { for (JComponent ? : cs) {�
?.setAlignmentX(alignment);
JComponent... cs) { for (JComponent ? : cs) { ?.setAlignmentY(alignment) ;
}
}
// ????? ???? ??????, ????????? ?????
}
??????, ???????? ????????? ? ??????? ????????? ???????? ????????????, ????? ?????????? ????? ?????? ??? ??????????, ? ????? ?????? ????????? ?????? ?????? ?? ??? ? ???? ?? ????? ???????. ????? ????? ??? ????? ???????? ?????? ???, ??? ?????, ? ???? ???????? ?????????. ???????? ????????, ??? ????? ??? ????? ??????? ????????? ?? ????????? ????? ??????? ? ??????? ?????????????, ? ? ????? ?????? ??? ???? ????????? ??????? ????? ??????? ?????? ?????? ????????????.
???? ?? ???????, ? ?????????? ??????? ??? ??????? ??????, ??????? ??????-?? ??????? ?? ???, ??? ??? ????????. ?????? ???????, ?????? - ? ?????? ???? ??????????? ????????????, ? ? ?????? - ???????????? ?? ????? ???????. ????????? ????? ?????? ?????? BoxLayoutUtils, ????? ????? ??????????? ????????? ???????????? ???? ???????????, ? ??? ?????? ?????????? ?? ?????, ?????????? ???? ? ?????? ??????.
26. ??????????????? ??????? ?? ??? ?????
27. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
2. � 2. ??????? ???????????? ????????? ? ??????? ?????? ???? ?? ???????????
?????? ???????????? ?????? ??????? ???????????? ?????????, ??????????? ? ?????? ????? (1.2), (1.4), ??????? ? ?????? ?(?,s) - ???? ????????????? ????????? ?? ???????????.
??????????? ?????????? ????, ???????????? ? ???? ???????? ?????
??????? ? 30
28. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?????????? ????????????? ??????????? ? GridBagLayout ?????????????? ????????? ???????? ??? ????????? GridBagConstraints, ??????? ????????? ????????? ???????????? ?????????? ? ????? ? ??? ???????????. ???????? ???, ?? ????????? ??? ? ????? add() ?????? ? ??????????? ? ????????? ???????????. ? ?????????, ?????? ???? ?????? ?????? GridBagLayout ????? ??????? ????? ??? ???????, ? ??? ? ??? ??????????? ?????????? ????????? ???????????? ????????. ???? ? ???, ??? ??? ????????? ???????? ? ??? ? ???? ????? (??? ???????????? ?????????? ????????-???????????????? ????????????????), ????? ???? ????? ?????? ?? ????????????? ????????????? ?? ???????, ? ?????????? "????????? ????" ? ?????????? ?????????? ???????? ??????????? ? ?????? ??? ??????????.
??????? ?????? ? ????????? ?????????? ? ???????. ??? ??????? ???????????? ??????? ?????? ?? ????????? ? ???????????:
?????????? ? ???????, ????? ???????, ???????? ? ????? gridx ? gridy. ??? ??? ????????? ?????? ??? ????? ?????????? ????????? ???????????, GridBagConstraints ??????? ????????????? ??? ????????? RELATIVE, ???????? ??????? ????????? ????? ???????? ? ??? ?? ??; ? ????????? ??????? ?? ????????? ??????????? ???????????. ????? ????????? ???????? ??? ???????????????? ???????????? FlowLayout, ??? ????? ??? ?? ????????? ?????????- ????????? ???????????????? ??????. ?? ?????????, ???? ?? ?? ?????????? ???????? ??- ??? gridx ? gridy, ??? ??? RELATIVE ? ???????????, ?????????? ?????????? ? ???? ???.
??? ??? ????? ??????, ?? ????? ???????, ????? ?????????? ????? ???????? ????????- ?? ????????? ??? ???????????.
� gridwidth - ?????????? ?????, ?????????? ??????????? ?? ???????????, "?????- ?????????? ? ???????
� gridheight - ?????????? ?????, ?????????? ??????????? ?? ?????????, "??????- ?????????? ? ???????
????? ????? ????????? ?????? ?????? ???? ??? ??? ???????, ?????????? ?? ????, ??????? ??? ?????. ??? ???? ??????? ????????????? ???????? GridBagConstra " REMINDER, ??????? ? ???????, ??? ????????? ?????? ??? ?????????? ?????? ?? ? ???? ?? ???? ??? ???? ?? ?????. ??? ??? ????? ?????, ??? ????????? ? ???? ?????? ?? ???.#- ??? ?? ????????? ???????? ?????????? ????? ? ?????-?? ?? ????? ??? ????????, ?? ??? ????? ?????? ??? ??????.
?????? ??????????? ??????? ?? ?????? ??????????? ???????, ??? ??? ?????-:-" ? ??????? ???????????, ? ?????????? ?????, ??? ??????????. ????????? ???????"- ?? ? ????? ?????? ??????? GridBagLayout ???????????? ??? ??????????? ?????? ???? -? GridBagConstraints, ? ????? ????? ???????, ??? ??? ????????, ?? ??????? ???????????:
????, ???????? ??????????? ?? ???????? ?????????:
� fill - ??????????, ????? ?? ????????? ????????? ??? ???????????? ??????, ? ???? ?????, ?? ???. ????? ????????? ????????? HORIZONTAL, VERTICAL ? BOTH, ??? ????? ?????????????? ?????????? ?????????? ????? ??????? ?????? ?? ???????????, ?????????, ??? ????? ???????????? ?????? (?? ????? ????????????). ?? ????????? ???????? ????? ???? ? ??????? GridBagConstraints ????????? NONE, ??? ????????, ??? ????????? ???????? ????????????????? ??????? ? ?? ?????? ?????????? ?????? ? ????????? ??????.
� anchor - ????, ???????? ???????? ?????????, ? ?????? ???? ?????? ?????????? ??????? "???????????". ?? ??????? ???????? ???????? ????????? ????????, ???????, ??? ?? ?????, ??????? ?? ???????? ?????, ? ???????, ???????????? ?? ?????? ???? ?????????? WEST (???????????? ?? ?????). ???? ????? ??????????? "??????????" ?????????? ? ????? ??????.
� insets - ?????? ??? ?????? ???????? ??????????? ?????????? ??????? ????? ????????????. ??????? ???????? ? ???? ??????? Insets, ? ?????????? ???????????? ????? ???????? ??????, ?????, ????? ? ??????, ? ????????.
????, ???????? ???? GridBagLayout ??????? ????????, ? ?????? ????????? ????????, ? ?????? ????????? ??? ?? ?????????? ?????? ????????? ????????? ????? ??????????. ?????????? ??????? ??????:
// GridBagStart.java
// ?????? ????? ? ????????????? GridBagLayout
importjava.awt.*;
import javax.swing.*;
public class GridBagStart extends JFrame { public GridBagStart() { super("GridBagStart");
// ????????????????????setDefaultCloseOperation(EXIT_ON_CLOSE);
?????? ??????????? ?????? ???, ??? ?? ? ???????, ? ??? ? ????????? ????? ???????? ????????? ????????. ??? ?? ????????? ?? ??? ?????????? ?????? ????, ???????? ?? ??, ??? ?? ?????????? ??????? ?????? ???? gridwidth ? fill, ? ??? ????? ???????? ????????????????? ??????? (?????? ? 10 ???????? ?????', ??? ?? ?????? ? ???????????? ??? ???? JTextField). ????? ????, ???? ?? ???????? ???? ??????, ?????????, ??? ??? ???????? ???????????? ???? ????????? ?? ???????????? ??????? "???????", ?? ???????? ???? ??????? ??????. ?????? ?????????? ???, ??? ?? ????????? ???????? GridBagLayout ????? ???? ????????? ???????:
� ?????????? ????? ???????????????? ?????? ? ?? ?????
* ?????????? ????????????? ? ?????? ??????????
� ??? ???????? ????? ????????? ??????????? ?? ???????????? ??????? (? ?????? ?? ????????? ? ???????, ? "??????" ???, ? ? ?????????? ???? ??????? ? ?? ??????, ? ??? ?????????????, ?????????? ??????? ? ??? ????? ? ????? ???????? ?????? ????).
??? ?? ????????? GridBagLayout ?????? ?????????? ?????? ?? ????????????????? ???????? ??? ????? ???? ???? ????????? ?????????? ?????, ???????????? ??? ?????????? "???" ??????.
� weightx, weighty - ??????? ?????, ??????? ????????? ?????????, ??????? ?????????? ????? ?? ?????????? ??????? ???????? ??????, ???? ??????? ???????. ????? ??? ????????????? - ???????? GridBagLayout ???????? ??? ???????? ?? ???? ????? ? ????????? ??????? ?? ????????????? ????????. ??? ???????, ? ???????? ????????????? ???????? ???????????? ??????? - ??? 100% ?????? ????? ?????????? ???????????? ??????. ????? ?? ???? ?? ??????? ????? ???????? ???????? ?? ?????????? ????????????, ??????? ???????? ??????. ?? ? ?? ????????? ???????? ????? weightx ? weighty ????? ?????, ? ??? ??????, ??? ?????? ??????? ?? ?????? ?????? ????????????????? ??????? ?????? ?????????? ? ????????. ?????????? ????????? ????? weightx ? weighty ???????? ? ??, ??? ???? ? ??????????, ??????????? GridBagLayout, ?????????? ???? ?? ???? ??????, ? ??????? ???????? ???? ????? ??????? ?? ????, GridBagLayout ?????? ??? ????? ??????????. ? ????????? ?????? ????? ?????? ???? ?? ?????, ???????? ?????????? ??? ???????????????? ???????? ???????????, ?????? ??? ?????????? ????? ????????????? ?? ?????? ??????????, ??? ?? ??? ????? ??????????? ????????? ? ????? ?????? ???????.
� ??????, ???????, ???????, ??? ?? ?? ????????. ???? ?? ????? ????? ????????? ???? ???????? ???? ??????? ????? ?? ???????????, ??? ????? ?????????? ???? weightx ? 100%, ? ??????????? ?? ????, ????? ????? ?? ??????????? ? ???????? ?????????. ???? ??????? ?? 100% ???????, ?? ?????????????? ??????? ???? ????? ????????? ???:
� textFieldConstraints.weightx = l.Of;
� ? ????????? ????? ?????:
� ??????? ??????? ????, ?? ??????? ????????? ? ???, ??? ????????? ???? ???????? ??? ??? ??????, ? ?????? ??? ?????? ?? "???????" ? ?? ??????? ?? ?????????? ?????????? ? ??? ??????.
???? GridBagLayout?? ??? ? ??????, ? ??????????? ???????????? ???????? ????? ????????? ???. ?????? ???????? ????????? ???????? ?????? ??? ???????? ????? GridBagConstraints. ???????? ??? ????? ?? ?????? ???? (? ???????, gridwidth? weight???????? ????????????), ? ???????? ??? ??? ???????????? ? ?????????? ? ???? ???? (??? ?????????? ????, ???? ???? insets), ? ?? ???????????? ? ????????? "????????? ?????", ????? ????? ? ???? ?? ????? ????????? ????????? ????????. 29. ??????????????? ??????? ?? ??? ?????
30. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
???? ??????????? ????? ?? � 1, ?? ??? ??????? ? ??????? ??????? (1.9) ??????? ?????? ????? ????????? ????
??????? ? 31
31. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??????? ???? MigLayout
???? ???? ???????????? ??????????? ???????? ?????????? ?? ?????, ???????? ?? ?????? ????????????, ???????, ?, ????????, ?????????? ????? ?????, ?????????? ??? ????????? ?????? ????????? ?????????, ???? ?? ???? ??????? ?????????? ????????????. ???????, ?? ???????????? ???????? ?????? ?????? CSS, ?????? ??? ??????????????? ???????????? ??????????? ?????? Web-???????.
???? ??? ???? ??????????? ? Java ? ??????? GridBagLayout, ?????? ?????? ???????? ???? ????????? ???????????? ??????????? ? ????? ????????, ?????????? ???????? ???????, ? ??? ??? ????? ???? ????? ?????????? ??????????? ????????. ???????????? ???????? ??? ?????? ??????.
?????? ???? ???? ???????, ???????? ???? ????? ??????? ? ??????? ?????? ????????? ????????? ????????????, ??? ? ??? ?????? ????????????? ?????????? ? ?????. ?? ??? ??????? ??????????????? ?????, ???????????? ???????? ???????? ????????-; ?????????? GridBagLayout. ????? ????? ?? ??????? ???????? ?????????? ?????? ????????? ???????? ????????? ???????????????? ???????? MigLayout.
?? ????, ????????? ???? ???????????? ?????????? ????????? GridBagLayout? ??: ???????? ?????????, ????? ???????, ??? ? ????? ?? ???????????? ????, ??? ?????? ??MigLayout. ?????? ???????? ?????????????? ???? ???????? ????? ??????? - ? bill; ??????? ????? ???????????, ??????????? ??????? ??????, ??? ??? ???????? ??????? ??????? ???????? ??????????. ?? ?????????? ?????????? ???????? ????? ??????? - add(K0Mn0HeHT, "???????? ??????"). ????? ????, MigLayout???????? ??????????? ????? ??- ????? ??????? ???????, ? ????????? ?? ???????????? ??????????? Java. ???????; -- ?????????? ?? ???????? ? ??????? ???????, ??? ????? ??? ???? MigLayout???????1 ????? ??????.
// MigLayoutStart.java
// ?????????? ? MigLayout
? ????? ???? ??????, ????? ???????????? ??? ???????, ????? ?? ????? ????? ? ??????????? ??????.
?????? ?????, ?????????? ????????? ????????? ??????? ??? ???????? ??????????. ???????, ????? ???????? ? ??? ?????, ?? ????? ????? ???????? ? ? ???????? ?????????? ??????????, ??? ?? ????????? ???????? ???????? ??? ???, ??? ???????, ???????? ????? ???? ???????? ??????? ????????? ????????????. ?? ?????? ??????? ??????? ???????????????? ??????????? ??????? ?????? ?????, ???????? ?????????? ??????????? ? ???????? ?????? ??????, ?? ??????? ??? ?? ???????? ?????? ?????????. ?? ????? ????? ipsoftware.ru?? ??????? ?????? ?? ????????? ?????????? ??????. ?????????? ???? ????????? ????????, ???????????? ??? ?????????? "usability" (? ?????? ??????????? ?????, ???-?? ????? "???????? ? ?????????????"), ?????????? ???????? ??????????, ??????????? ???????? ? ????????? ????????????. ???????? ?????????? ?????????? ????????? ???????? ???????? ???? ???????????. ???? ????? ???????????? ?????? ?????????? ????????????? ?????????.
???? ?? ????? ?? ???????, ??? ??? ?????, ???? ??? ??????, ?? ????? ????????? ????? ???????? ?????????? ????, ?? ?????? ????????????????? ???????? ?????????? ?????????? ???????????????? ???????????, ? ?????? ?? ?????????, ???????????? ????????????, ? ???????? ???????? ??? ????????????, ? ???????????? ????????, ??????? ????????? ????????? (????? ??????? ??? ??? ????????? "?? ???????? ????????????"). ???????? ????? ???????? ??????? ????????????? ??????????, ???? ??? ???????? ?? ????? ??????????????. ??? ?? ????? ?? ??? ?????? ?????, ?? ????? ????? ????? ??????????? ????????? ??????????? ?? ????????? ??????????? ? ??????? ? ??????. ???????????, ????? ?? ????? ????????????, ????????????? ??? ??????? ??????????? (???, ? ?????????, ??????? ????????, ? ????? ??????? ?????????? ?????? ?????????? ???? ????? ????? ?????), ????????, ??? ????? ? ??????? ??? ? "?????" ?????? ???? ???, ????? ????????? ??????, ? ????? ????? ???????? ??????? ???-?? ??? ??????????? ??????. ?????????????? ?????? ????????? ?????????????, ???????? ???????? ??????????? ????, ?????????????? ?? ???. 7.4.
??? ???????? ????????????????? ?????????? ????? ????? ????? ??????. ????? ?????? ???? "????????????? ???" ? ????? ??????????, ?????????, ??? ? ??? ????? ? ??? ????????? ? ???????????????. ????? ?????? ???????? ?????, ???? ?? ?????????? ???????????? ??? ????? ?????????? ??????????? ??????? ???, ?????? ??? ? ?????, ? ??????. ? ????? ??????? ???????? ????????? Java - ????? Sun (?????? ??? Oracle), ???????????? ??? ???????????? ???????????? ???????? ???? ??????????. ??????? Sun ??????? ????????? ????????????????? ??????, ????????? ?????????? ? ??????????, ? ????? ????????, ??? ??????????, ????????? ? ?????? ???????????? ? ????? ??????????????, ???????? ????????????? ??????????. ? ???? ?? ?? ?????? ????????? ??
??????? ?????????? ???????? ????? ??????????? ??????? ??? ????, ?????? ? ??????? ????????????, ??? ??????????? ??????? ????????????????? ?????? ??????????, ?? ?????????? ??? ????????? ? ?????? ??????????. ???? ?? ????????, ?????????? ???????? ????????? ???? ????????????.
???????????? ?? Sun
???????????? ?? ???????? ?????????? Java-?????????? (JavaLook&FeelDesignGuidelines) - ??? ???????? ???????? ????, ?????????? ????????? Sun/Oracle ?????????? ??? ????????????? Java-??????????. ??? ?????????? ????????????? ????? ???????? ??????????, ??????????? ??? ???????? ???????????? ??????????. ???????????? ?? Sun, ? ??? ?????, ???????? ???????? ???????????? ??????????? ?? ?????, ? ???????? ??????????, ?? ?????? ??????, ???????? ?????????? ? ???????????? ????? ????????????. ?????? ???? ?????????????, ????? ? ?????????? ???????? ????????????? ??????????????? ??????? ???. ?????? ??????, ??? ??? ???????????? ???????? ?????? ???????? ???? Metal ??? ???????????? ?? ????, ????????????? ? Swing ?? ?????????, ? ? ?????? ??????? ???????? ???? ????? ???????? ???????? ?? ???????????? ??? ?????????????.
????? ???????? ???????? ??????????? ???? ??? ?????? ??????????, ??, ??????????? ??? ??????????????, ???????? ????????? ???????????? ????? ???????????? ? ????????? ?? ?????? ????. ??? ????????????? - ????? ?????? ????????? ???????, ? ??? ??????? ?????? ???????????? ????? ????????????? ???????? ????????? ????????????? ??????????, ??? ????? ?????????. ?????? ?????? - ????????? ?????? ????? ?????????? ??? ??????????, ????? ???????? ????????? ?????????? ????? ????????? ?????? ???????????? ??? ?????? ??????????. ????? ????? ?? ? ?? ??????. ??????? ??? ??? ????????? ???????? Sun. ????? ?? ??????????, ??? ??? - ????????? ??????? ? ?????? ????? ??? ????????? ??????????. ??, ??? ?? ?????, ?? ???? ????? ??? ?????????? ?????????. ????.
� ?????????? ????? ????????? ????? ?????????? ???????)????.???? ????? ?????? ???????????? ???????? ?????? JButton, ?????? JCheckBox? ????????????? JRadioButton? ???????, ?????????? ?? ????? ????????????? ?????? ?? ????????? ????????? (???? ?? ?????? ????? ????????? ????? ????? ????????? ?????????? ?? ??????? ???????? ???? ?? ????? ?? 5 ???????? (? ????????? ??????? ????????????? 6 ????????, ?????? ??? ??? ?????????? ????????, ? ?? ??????????? ???????;; ? ??????? ??????????? ??????? ??????? ? ???? ?????? ?????, ????????, ?????: ? ?????). ????????? ?????? ? ????? ?????? - ???? ?????? ??? ??????.
� ?????????? ????? ???????? ???????????. ????? ??????? ? ???? ?? ?? ????? ?????? ?? ??????? ? ??????????????. ??????, ???? ??? ???????????? ? ?????????? ?? ?? ?????????? (?????? ?????? ???????? ?? ????? ????????????? ???????). ??* ???, ?????????? ????? ???? ?????? ???? 12 ???????? (????? ????? ???? ??????? - 11 ????????, ????????? ? ????????????? ??????????? ????????? ????? ????? ???????????, ?? ? ???? ?????? ???????? ??????????? ?? ??????????? ?????? ? ????? ?????????? ????? ????? ???, ?? ???????? ????? ?????????? ????, ??????????????? ??? ????????? ?????????, ? ?? ?? ???????.
� ???????????? ????? ????????? ???? ? ??????? ????????????. ??????? ????? ??????????, ?? ??????????? ???????? ?? ?????????? ? -???????? ??? ?? ?????? ??-^ ???????? ??? ?????? ?????. ?? ?? ??????????? ????????? ? ? ??????? ? ??????� ????? ??????? ? Swing ?????? ????????? ???????????. ????? ?????? ???????" ????? ??????????????? ?????????, ???? ?? ? ???? ?????? ?? ??????? ??? ??????????????. ?? ?????? ???? ??????? ?????????? ????? ????? ????????. ??? ????-? ???????? ??????????? ???????? ? 12 ????????.
� ?????????? ????? "????????" ????????????. ??? ???????? ???????????? ??????????????? ??, ???????, ??? ???????, ?? ????????? ? ????????? ????????? ???????. ? ??? ????????? ????????? ???? JTextField, ??????? ? ??????????? JLabel, ?????????? ???????? JProgressBar, ???????? JSIider? ?. ?. ? ????? ??????? ???????????? ??? ????????????? ??? ???????? ? 12 ????????.
� ???????????? ????? ????????????, ???????????? ????????? ?????? ???????. ????? ?????????? ??????? ????? ????????? ? ??????????. ?? ??? ??????? - ? ????? ?????????? ???? ??? ????. ????????? ???? ?????? ??? ????? ?????????? ?? ????????????, ? ?????? - ??? ????????? ?? ???? ??????. ?? ????????????? ????????? ????? ????, ? ??? ????? ???????????? ??????????? ?????????? ? 17 ????????. ?????? ??? - ???????????? ??????? ?????????? ?????? ?????????? (????????? ?????? ?????????? ?? "?????????????" ????? ??? ?????????????? ????? ??????????).
� ??????? ??? ?????? JButton. ??????-?? ??? ??? ?????????? ?????? ??????, ? ? ??? ????????? ?? ????????? ? ?????, ??????????? ????????? ?????????? ?????? ? ??????? ? ?????????, ?? ??? ? ????? ?????????? ???? ???? ??????, ?????? ?? ???? ??????. ?????????? ???????? ????????? ?????????? ?????? (?????? ?????, ?????? ??????) ?? ?? ?????? ????? ? ?????? ?? ?????? ?????????? ? ?? ????? 12 ????????. ????? ?? ?????? ???????? ??????, ? ???????????? ? ??????? ????? Melal ?????????? ?????????? ???? ????????, ??????? 14 ????????. ??????, ????? ?????????? ??????????, ????? ????????? ????? "?????" ? 12 ????????.
??? ???????? ?????? ????????? ???????????? Sun, ??????????? ? ???????????? ??????????? (??? ??????????, ??????? ?? ?????? ???????, ????? ?????? ??????????). ?? ????? ??????????? ???????????? Sun ?? ?????????????, ? ??? ?? ?????? ????? ????????? ???????? ??????????, ?????????? ????, ??? ??????? ???????????? ????????? ? ???????? ????? ? ???????? ???????????, ????? ????? ?????? ???????? ??? ???????????????? ???????????, ????? ?????? ???? ?????? ??? ?????????? ? ??????? ????? Metal, ??? ???????? ????? ??????????? ?????????? ???? ? ?. ?. ????? ??????? ???????? ???? ????????? ????????????????? ??????????. ? ?????????, ??? ?? ???????? ????? ?????? ????? (???? ???-??? ?? ???? ???????????? ?? ?????????? ? ??????, ??????????? ??????????? Swing, ? ?? ????????? ?????? ?????????? ?? ???? java.sun. com). ??????????? ???????????? ?? ??????? ????? ? ??? ?????? ????????? ??????? ?????: Windows, Apple ? ?????????, ???? ???????? ??????? ???? Swing-?????????? ? ??????? ?????.
???????? ? ?????? ??????????? ????. ??? ?????, ????????? ????? Java-?????????? ?? ??? ?? ? ??????, ?? ??????? ????, ? ????????? ?????????? ????? ???????????? ? ?? ????????????. ???????? ??????????? ????? ?????? 12 ????????, ?? ? ? ?????? ??????? ??????????? 5 ? 17 ????????.
32. ??????????????? ??????? ?? ??? ?????
33. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
? ?????????????? ???????? ???????? ????????????? ?????????? ??????? ????????? ??????????. ?? ???????? ?? ??????? ??????????? ???? ????? ?????????? ????? ??????????? ??????. ????? ? - ????????? ?????????? ?????? ??????????? ?, ???????????? ? ????
??????? ? 32
34. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
???????????? ?? ???????????? ? ????? LayoutStyle
??? ?? ??? ???????, ???????????? ??????????? ? ??? ???????????????? ????????? ????? ????????? ??????????????, ? ??????? ?? ?????????? ?????? ???, ? ???????? ??? ? ??????? ?????? ???????. ????????????, ???????? ???, ??? ?? ?????? ??? ??????????? ??? ???????? ???? Metal, ???????? ????????? ?????????. ????? ??? ????? ????????? ??????? ?????????? ???????? ????????????? ??? ???????? ??????????, ? JDK ?????? 1.6 ? ?????? javax.swing???????? ????? ??? ????????? LayoutStyle, ??????? ??????? ????????, ????? ?????????? ????? ???????????? ??????? ???????????? ??? ???????? ??????????. ???????? ???, ?? ?????? ?????????? ?? ?????????? ?????????? ?????? ? ????? ??????? ??????? ????? ?????????? ?????????? ?????????????, ?? ????????? ???? ?? ??? ???????? ????.
????? LayoutStyle???????? ?????????? ???? "?????????" - ?????? ??????? ?????? ???? ??? ?????????, ????????? ???? ???????? ????? ??????????? ????? getlnstance(). ????????? ????? ???????? ?? ???? ??????????? (?????? ??? ?????? ????? ??????? ??? ??????????, ????? ?? ??? ??????????????). ? ?????? ? ??????? ??????????? ??????? ????????, ????? ?????????? ??? ?????????? LayoutStyle??? ???????? ???? ?? ????????? (Metal):
// L^youtStyleTest.java
// ?????????????? ??????????? ????? ??????????
importjavax.swing.*;
import static javax.swing.LayoutStyle.ComponentPlacement. *;
public class LayoutStyleTest {
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {
public void run () {
// ??????????
JPanel panel = new JPanel();
JTextField text = new JTextField();
JLabel label = new JLabel("????");
// ?????? ?? ??????? ??????????
LayoutStyle style = LayoutStyle.getlnstance();
System.out.printlnC" + style.getContainerGap ( text, SwingConstants.WEST, panel));
// ?????????? ????? ?????????? ???????????? System.out.println("" + style.getPreferredGap(
label, text, RELATED, SwingConstants.EAST, panel));
' } )) ;
)
}
???????? ??????, ?? ??????? ??? ????? 12, ??? ????????? ? ??????????????, ??????? ?? ??????? ??????????? ??? ???????? ???? Metal. ??????, ????????? ?????????????? ?????????? ??????????? ?????????? MigLayout, ?????????? ????, ??? ?????????? ?? ????? ?????? ?? ?????? LayoutStyle. ????? ?? ??????? ????? ???????? ? ????????? ???????????? GroupLayout, ??? ?????? ??? ????? ??????? ??? ?????????? ???????????? ??????????? ? ????????? NetBeans.
? ?????, ??? ???????? ?????????? ?????? ????? ????????????? ???????????? ???????? ??????, ???? ??????? ? ????? ?????????? ??? ??????? ??????. ???????? ??????? ????????? ?????????? ???? ????????? ??????? ? "?????? ? ????" ? ????" ??????? ????.
?????????? ? ????: ????????? ?????
????????? ??????????? ??? ???????? ? ??????? ?????? BoxLayout. ?????? ???-??, ??? ?????????? ??????? ?? ????????? ??????? ? ??????????? ????? ????????, ?* ???? ??????????, ???, ??? ? ????? ?? ????? ???????????? ????????? ??????????;^.
??? ????? ?? ????????? ??? ????????? ??????? ???, ????? ??????????, ??????? ?????????? ??????? ?? ????????? ??? ???????????, ????????????? ????? ???? ????? (???. 7.5). ????? ??? ?? ???????? ????? ??????????, ??? ????????? ????????? ? ?????????.
????? ??????? - ?????????? ???????!" - ??????? ??: "??? ??? ???? ??????? ????????????????? ? ?????? ????????" ??? ?????, ?? ???????? ? ????? ???????, ??? ???????, ?? ??????????. ? ?????? ????????????? ???????? ??????? ????? ??????? ?? ???????? ?????????:
� ????????? ???????????? ???, ????? ??? ?????????? ???????? ???? ????????? ?????????? ?? ??????????? ????? ??????????????, ?? ????? ??? ???? ?? ??????? ?????????????????. ? ????? ?????? ????? ????? ????????: ????? ??????? ????????? ???, ????? ????????? ???? ??? ?????????? ???????? ????????? ?? ??????? ?????? ??????????, ? ????????? ? ???? ??????? ?? ???????? ?? ??? ? ???????. ???????? ??????????? ????????????, ??? ????? ???????????? ?????????????? "??????", ? ?? ????????????.
??? ??? ???????? BoxLayout ????????? ????????? ???????????? ??????? ????? ????? ????????????, ??????? ????? "?????" (?? ???????? ??? ? ??????? ? ????????????), ????? ????????? ?????????, ???? ????? "???????" ????????? ?????."?????????? ??????? ? ???????????? ??????????? ?? ????.
� ????? ????? ?????????? ?????? ????????? ?? ???????? ??????????, ????? ??????? ??????????? ?????????? ???? ??? ????? ????????? ????????????, ???????? ??? ???????? ????? ??????????? ?????????? ???????? (????? ?????????? ?????? ??? ?????????? ???????????? GridLayout). ?????? ???????, ??? ??????????? ???????? ??????? ????????? ? ??????????? ????? ????????????, ? ???? ? ???? ???????? ????????, ?????? ????? ???????? ??? ?? ?????????, ????????? ? ???????? ????????????. ? ????????? ? ??????? ????????????? ??????????? ?????? ???????? ? ???????????????? ???????????? ??????????? ?? ????, ?? ??? ??? ??? ?? ????????.
� ??? ??, ? ??????? ??????? 7.5 ????? ???????, ????? ????????? ???????????? ??? ????? ??????. ???????? ??????????? ? ?????????? ????????? ????? ? ??????, ????????? ????????, ??????????? ?? ?????????????? "???????". ??? ??? ??????? ??????? ???????????? ?? ??? X.
� ?????????? ????????????????? ???????????? FlowLayout????? ???????, ??? ??? ???????? ??????? ??? ?????? ??? ?????, ??? ???????. ?????? ???????, ??? ??? ????????????? ???, ?? ????? ????????? ? ????????? ????????? ? ???????????? FlowLayout: ???
?????????? ???? ????????? ???? ????? ????????? ??? ?????????, ??? ??? FlowLayout ????????? ?????????? ?? ?????? ??????, ???? ?? ?? ??????? ?????. ????? ????, ???? ???????????? ??????????? ????????? ????????? ? ???????????? ?????? ?????????? ????? ????????????, ? ????????????? FlowLayout ????????? ?????????, ? ?? ????? ??? ??????? ???????????? ???????? ???????? ?????????? ? ???????? ?????????.
????, ?????????? ??????? ??????????, ? ??????? ???????? ??????? ??????????? ???????. ??? ????? ?? ??????? 7.5, ???????????? ?????? ???? ???????????. ? ??? ?????? ?????? ???? ??? ??????????? ? ??????? ???? ?? ?????????? ? ????????????????? ???????????? ? ????????????? ?? ??????? ????. ??? ???? ?????????? ? ?????. (??????, ? ???????? ????????? ?????????? ?????? ??????????? ??? ?? "??????" ? ??????? ????? ?????? ?????? ? ??????? ?????????????.) ??? ????????? ?????????????? ?????????? ??? ????????? ?????????????? ?????? ?????? ???? ?? ????? ? ??????? ????????? ????????????? ???????? ????????????. ? ????? ?????? ??? ?????? ?????????? ???????????? ????????? ?? ????? ??????? ???.
???????? ?????? ??????????? ????? ????????????, ??????? ???????? ?? ??? ???
???????? ????????????????? ?????????? ?? ???????????? ??? ?? ????? ???? ? ?? ?? ????????? ????, ????????? ??????????? ?????????? ??????? ? ????????????? ??
� ? ???????????? ? ?????????? ?????????????? Sun. ??? ????? ????? ? ??????? ??????????? ???????:
// com/porty/swing/GUITools.java // ????? ???????????? ??? ????????????? // ???????? ? ???????? ?????? ?????????? package com.porty.swing;
}
// ????????? ????????? ?????????? ?
// ???????? ?????????? ???? JTextField
public static void fixTextFieldSize (JTextField field) {
Dimension size = field.getPreferredSize () ;
// ????? ????????? ???? ??-???????? ????? / / ??????????? ???? ?????? ? ????? size.width = field. getMaximumSize (). width;
// ?????? ????????? ???? ?? ?????? ???? // ????? ??????????? ?????? field. setMaximumSize (size) ;
)
}
35. ??????????????? ??????? ?? ??? ?????
36. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
????? ?????? ????? ?????? ??????????? z = ? - XS? (?????? ???????? ? ????????? (8)) ??? ???????? ??? ????? ??????? (10) ????? ?? ??????? (? - ?S)-1 (?????? ???????? ? ????????? (9)). ? ????? ??????? ???????? ????? ??????? ????????? ????
u-Pu = g.(11)
??????????? ????????? ???????????.
???? ???? ?(?, s) ??????????, ??
????? ???????, ???????? ??????? ?????????, ??? ??????? ??????? ????? ???? ?????????? ???????? ????? ??????? ????????.
??? ???????? ??????? ????? ????? ? ????? ???? ??????? ????????? (8), (9), (11) ?? ????????????; ?? ?????? ???? ??????????? ??????????????? ????????, ???????? ? ?????? (11) ???????? ???????? (? - AS)-1h??? ????????? h, ??????????? ??????. ? ?????????? ????? ???????????? ?????? ??????????? ???????? ?????.
??????? ? 33
37. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
?????? ????? ????? ????????: ? ????? ?????????? ???????? ??????????, ??????? ????? ??????? ???????????. ????????, ??? makeSameSize() ????? ?? ?????? ?????? ??????????? - ?????????? ???????? ??????? ????????? ? ??????????? ????????? ?? ????. ???? ???????, ??? ? ??????????? ???????? ???????????? ???????? ??????????? ?????????? ?????? ?? ??????. ???? ????? ??? ??????????? ????? ??? ???????????? ?? ??????, ???? ????? ?????? ??????? ?????????????? ???? ????? ? ?????????? ???????????? ????????? ??? ????????? ? ?????????? ???????. ????????????? ??? ??? ??????? ???????????. ?????? ??? ???????????, ??????? ??????? ?????????? ???????? ??????????? (??????, ???????, ??????, ????????), ??? ???????? ????????? ?????????. ????? ??????? ??????????, ??????? ??? ????????? ???? ?????? ???????????? ??????? ?????? ???? ??????? (???????, ????????? ??????????, ? ?. ?.) ?????? ??????????? ? ??????? ??????????? ?????? ??????? ?????????? ????????????.
??????????? ?????? fixTextFieldSize() ?? ??? ?? ????????, ?? ??? ???? ???? ?????????? ???? ????? ????? ?????? ???????????. ???? ? ???, ??? ??? ????????? ??????????????? ???????????? ? ???? ????????? ???? JTextField ????????????? ?? ?????? ? ?????, ??? ??? ? ????????, ?? ? ? ??????, ??? ?????? ?? ??????? ? ?????????????? ?? ???????????? ???? ?????. ??? ????????? ?? ???????? ??? ???????? ???????????? BoxLayout. ??????, ??? ??????? ? ???, ??? ??? ????????? ?????????? ? Swing ???????????? ?? ???????? ?????? JTextComponent, ??????? ? ?????? ????? ???????, ????? ?????????? ??? ????????????? ????? ????? ? ????-??????????. ????? ????????? ????? ???????? ??????????, ? ?????? GUITools ? ???????? ???? ?????. ?? ????????? ????? ?????????? ???? ??????????? ?????????, ? ?????? ?????????? ?????????? ?? ??????????? ?????? (??????? ????????????? ?????? ??????).
??????, ? ???????? BoxLayoutUtils ? GUITools, ??? ?????? ??? ????, ????? ? ???? ??????????? ???????????????? ????????? ?????? ??????????? ????:
// LoginDialog.java
// ????? ???????? ??????????????
// ????????????????? ?????????? ?? ???????
// ??????????? ???? ????? ? ???????
import javax.swing.*;
import java.awt.*;
import com.porty.swing.BoxLayoutUtils; import com.porty.swing.GUITools;
public class LoginDialog extends JDialog { public LoginDialog(JFrame pareift) { super(parent, "???? ? ???????");
// ???????? ???? ??? ???????? setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// ????????? ???????????? ? ????? ????
add(createGUI());
// ?????? ???????????????? ??????
pack () ;
// ??????? ???? ?? ????? setVisible(true) ;
}
// ???? ????? ????? ?????????? ?????? ?
// ????????? ?????????????
privateJPanelcreateGUI() {
// 1. ????????? ??????, ??????? ????? ?????????
// ??? ????????? ???????? ? ?????? ????????????
JPanel main =
BoxLayoutUtils.createVerticalPanel();
// ????? ????????? ??????? ??????????? Java,
// ?????????? ???????? ??? ?????????? ??
// ?????? ???? ?? 12 ????????.
// ??? ????? ?????????? ?????? ?????
main.setBorder(
BorderFactory.createEmptyBorder(12,12,12,12));
// 2. ?????????? ????????? "??????", ?? ???????
// ??? ?????? ????????? ?? ????? ???????
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel name =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel nameLabel = new JLabel("???:");
name.add(nameLabel);
name.add(BoxLayoutUtils.createHorizontalStrut(12)); JTextField nameField = new JTextField(15); name.add(nameField);
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel password =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel pas-swrdLabel = new JLabel ("?????? :") ; password.add(passwrdLabel) ;
password.add(BoxLayoutUtils.createHorizontalStrut(12)) JTextField passwrdField = new JTextField(15); password.add(passwrdField);
// ?) ??? ??????
JPanel flow = new JPanel( new FlowLayout(
FlowLayout.RIGHT, 0, 0) );
JPanel grid = new JPanel( new GridLayout(
1,2,5,0) ) ;
JButton ok = new JButton("OK");
JButton cancel = new JButton("??????"); grid.add(ok); grid.add(cancel); flow, add (grid) ;
// 3. ?????????? ??????????? ???????? ?? // ???????????? ???????????, ????????? ?? // ????????, ???????? ?????????? ???????? // ?) ????????????? ???????????? // ????????? ??????? BoxLayoutUtils.setGroupAlignmentX(
Component.LEFT_ALIGNMENT, name, password, main, flow) ;
//?) ??????????? ???????????? ???????? // ? ????????? ????? BoxLayoutUtils.setGroupAlignmentY(
Component.CENTER_ALIGNMENT,
nameField, passwrdField, nameLabel, passwrdLabel); // ?) ?????????? ??????? ???????? ? ????????? ????? GUITools.makeSameSize(nameLabel, passwrdLabel);
// ?) ?????????? "???????????" ?????? ????????? ????? GUITools.fixTextFieldSize(nameField);
GUITools.fixTextFieldSize(passwrdField);
// 4. ????????????? "????" ????? ? ????????? main.add(name);
main.add(BoxLayoutUtils.createVerticalSbrut(12)) ; main.add(password);
main.add(BoxLayoutUtils.createVerticalStrut(17)); main, add (flow) ;
// ?????? returnmain;
}
// ???????? ????? ??? ???????? ??????????? ????
>?.; ?? ?????? ???????????? ? ??????????? ????????????? ????? ????????? ????????? ??????? ? ????????? ??? ???????????????? ? ??????????? ? ?????? ??????? ????????????????? ?????????? ?????????. ??? ????????????? ?????? ? ??????????? ??????????? : ??? - ???? ?????. ????? ?????? ?? ?????????? ??????????, ???????????? ???? ????? ?? ????????? ????? ? ???????? ? ??????? ??????. ???????? ????? ???????, ????? ??????? ????? ?????????? ????? ???????????, ? ?? ????? ??? ???????? ?????????? ??????????.
??????????: ?????? ?????
?????????? ???????? ??????? ?????????? ?????????? ? ??????? ????????? ?????? ? ????????? BoxLayout. ???? ?????? ??????????? ?????, ?????? ??????? ?????????? ????? ?????????????? ????????, ????? ??? ???????????? ?? ???? ? ???????? ?????????? ????????, ? ????? ?????? ???????? ??????????. ? ?????? ???????, ? ??? ???? ?????????, ?????????? ?? ???????? "?????? ?????". ???? ???????????? ?????? ????????? ????????? ?? ?????, ?????????? MigLayout ??? GridBagLayout (? ??????? ?????????????? ???? ???????? ???????????) ????? ???? ???????, ??? ??? ?????? ????? ??? ????????????? ???????????? ??????????? ? ?? ????????.
????????? ?????? ??????????? ??? ?? ????? ???????? ?????????? ??????? ????? ? ??????? ? ??????? ????????? MigLayout. ??? ?????, ? ??? ????? ??? ???? ? ??? ???????, ?????? ?????? ???????? ?????????? ? ??????? ?????????????? ??????, ??? ?? ?????? ?????? ?? ??? ?????. ?????? ??????? ?????? ????? ? ???????? ?? ???????????. ??? ??? ?????????:
// ???? ????? ????? ?????????? ?????? ? // ????????? ????????????? privateJPanelcreateGUI() {
// 1. ???????? ??????
//? ???????????? ?????? "????" ??????? ??????? JPanelmain = newJPanel(newMigLayout("", "[][grow]"));
// ?????? ??? ?????
main.add(newJLabel("???:"));
main.add(new JTextField(15), "gap rel, wrap rel, growx");
// ?????? ??? ?????
main.add(new JLabel("??????:"));
main.add(new JTextField(15), "gap rel, wrap unrel, growx");
// ?????? ??? ????? - ?????? ??????????? ??????? // ?????????? ?????? ??????, ????????? ?????? ?? ???
main.add(new JButton("OK"), "skip 1, split, sg buttons, align
right");
main.add(new JButton("??????"), "sg buttons");
// ?????? return main;
}
38. ??????????????? ??????? ?? ??? ?????
39. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
????????? ? ?????? ???????????? ?????.
???????, ??? ??? ????????. ????? ???? ? (?,s) ??????????? ? ???????????, ?. ?. K(s, ?) - ?(?, s). ??????????? ?????, ??? ?(?, s) ? ? ??????????. ????? ?????????? ?????? ????????????????? ??????? ??????????? ??????? <?? ????????? Q:
??????? ? 34
40. ??????????????? ????? ?? ??? ?????. ???????? ??????? ? ??????????? ????
??? ????????? ?? ???????? ??????????? ? ????? main(), ??? ??? ??? ????????? ?? ?????????? ?? ???????? ? ??????? ?????????????. ???? ??????? - ????? ??????? ????? ?????????? LoginDialog2. ? ??? ?? ????? ?????? createGUIQ ????????? ????????? ???????
???. ? ?????? ? ????? ???????? ????? ? ??????? ?????? ?????, ???????? ????????????? ? ??????? ????????? MigLayout, ???? ?? ?????? ??????? ????? ?????????? ?????????, ? ??? ????? ? ????????? ????, ??? ????????? ????????????? ????????? ?????????? ????? ???????????? ? ????? ????????? ??????????? ? ????. ???? ?? ????????? ??????, ??????????? ????????? MigLayout, ?? ?????? ??????? ?????? ??? ???????, ???????????? ???????? ???? ????????? ??? ???????? ???? ?????? - ?????? ???????? ??????? ?? ??? - ?? ????? ?? ?????? ??????, ? ??????? ???????, ??? ?????? ?????? ???? ????????? ?? ??????? ???? ???????? ?????? align. ???????? ??????, ?? ??????? ??????????? ?????????? ?????????? ????.
?????? ??????? ?. ??????? ????????????? ??? ?? ???? - ???????? MigLayout?? ????????? ?????????? ??????????? ?????????? ????? ????????????, ? ?? ??, ??? ????????????? ??? ???????? ???? Metal. ? ????????, ?????? ????????? ? ???? ???, ?????????? ????? ????????? ???????, ???? ??????????? ? ???, ??? ?????????? MigLayout. ??????????? ?????? ????? ??????????? ? ? ??????? ???????????? ????????? GridBagLayout. ?????? ??? ? ???? ?????? ????????? ??????? ??????? ? ???????????.
?? ????? ??????, ??? ??????? ?????? ????? ?????? ?????????? ? ???????? ???????, ??? ??? ?????????? ? ?????? ? ???????? ????? ? ???????. ???? ??????????? ?????, ? ??? ?? ?????? ????????? ?? ?????, ??????? ?????????? ?? ??? ? ?????? ????? ????? ???? ??????? ?????? ? ???????????? ? ?????????? ???, ??????? ?????? ????????? ? ????????????. ? ????? ?????? ? ????? ??????? ??????? ??????? ????????????, ??? ????????? ????? ??????? ????????? ????????????. ? ????????, ??? ???????? ? ????????????? ??????????? ??? HTML-???????: ? ??? ???? ??????? ???????????? ??? ???????????? ????????? (<table>), ??? ????????? ????? (<div>??? <span>).
??????
???????????? ??????????? ? ?????????? ?????? ?????????, ???? ???????????? ??? ????? ????????? ???????????? ?????? ??? ????????? ? ??????????. ??? ???? ? ??? ??? ????????? ???????????? ???????? ???????? ??????????????? ??????????, ????????? ??????? ????? ???? ???????????? ? ?????? ?? ?????? ?? ??, ???? ?? ????? ?? ??????? ?? ???????? ????????? ????????????. ??? ?? ?????, ???? ??????? ????????? ???????, ??????? ????????????? ??????? ? ???????? ????????? ? ?? ???????? ? ????- ??? ? ???????????? ??????????? ??????????, ????? ?????? ? ?????? ???????? ?????: ???????????? ???????????.
public class LoginDialog extends JDialog { public LoginDialog(JFrame pareift) { super(parent, "???? ? ???????");
// ???????? ???? ??? ???????? setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// ????????? ???????????? ? ????? ????
add(createGUI());
// ?????? ???????????????? ??????
pack () ;
// ??????? ???? ?? ????? setVisible(true) ;
}
// ???? ????? ????? ?????????? ?????? ?
// ????????? ?????????????
private JPanel createGUI() {
// 1. ????????? ??????, ??????? ????? ?????????
// ??? ????????? ???????? ? ?????? ????????????
JPanel main =
BoxLayoutUtils.createVerticalPanel();
// ????? ????????? ??????? ??????????? Java,
// ?????????? ???????? ??? ?????????? ??
// ?????? ???? ?? 12 ????????.
// ??? ????? ?????????? ?????? ?????
main.setBorder(
BorderFactory.createEmptyBorder(12,12,12,12));
// 2. ?????????? ????????? "??????", ?? ???????
// ??? ?????? ????????? ?? ????? ???????
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel name =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel nameLabel = new JLabel("???:");
name.add(nameLabel);
name.add(BoxLayoutUtils.createHorizontalStrut(12)); JTextField nameField = new JTextField(15); name.add(nameField);
// ?) ?????? ????????? ???? ? ??????? ? ????
JPanel password =
BoxLayoutUtils.createHorizontalPanel() ;
JLabel pas-swrdLabel = new JLabel ("?????? :") ; password.add(passwrdLabel) ;
password.add(BoxLayoutUtils.createHorizontalStrut(12)) JTextField passwrdField = new JTextField(15); password.add(passwrdField);
// ?) ??? ??????
JPanel flow = new JPanel( new FlowLayout(
FlowLayout.RIGHT, 0, 0) );
JPanel grid = new JPanel( new GridLayout(
1,2,5,0) ) ;
JButton ok = new JButton("OK");
JButton cancel = new JButton("??????"); grid.add(ok); grid.add(cancel); flow, add (grid) ;
// 3. ?????????? ??????????? ???????? ?? // ???????????? ???????????, ????????? ?? // ????????, ???????? ?????????? ???????? // ?) ????????????? ???????????? // ????????? ??????? BoxLayoutUtils.setGroupAlignmentX(
Component.LEFT_ALIGNMENT, name, password, main, flow) ;
//?) ??????????? ???????????? ???????? // ? ????????? ????? BoxLayoutUtils.setGroupAlignmentY(
Component.CENTER_ALIGNMENT,
nameField, passwrdField, nameLabel, passwrdLabel); // ?) ?????????? ??????? ???????? ? ????????? ????? GUITools.makeSameSize(nameLabel, passwrdLabel);
// ?) ?????????? "???????????" ?????? ????????? ????? GUITools.fixTextFieldSize(nameField);
GUITools.fixTextFieldSize(passwrdField);
// 4. ????????????? "????" ????? ? ????????? main.add(name);
main.add(BoxLayoutUtils.createVerticalSbrut(12)) ; main.add(password);
main.add(BoxLayoutUtils.createVerticalStrut(17)); main, add (flow) ;
// ?????? return main;
}
// ???????? ????? ??? ???????? ??????????? ????
41. ??????????????? ??????? ?? ??? ?????
42. ??????????????? ????? ?? ??? ?????, ?????? ??????? ? ??????? ??????????? MSEquation
Документ
Категория
Без категории
Просмотров
28
Размер файла
2 979 Кб
Теги
zadanie_1_chast_v1, v34
1/--страниц
Пожаловаться на содержимое документа