2012-02-10 3 views
3

これらのレイアウトを使用する。 FlowLayout、BoxLayout、GridLayout、BorderLayout、およびGridBagLayoutは、私のGUIを以下のように見せようとしています。フロー、グリッド、ボーダーを試しましたが、同じように見せてもらえませんでした。シンプルな株式市場アプリケーションの添付写真のようなGUIを作成するにはどうすればよいですか?

enter image description here

+4

2000年代にBMPを接続することは悪い考えでした。 –

+2

なぜ画面上でキーボードをエミュレートしようとしていますか?あなたが見下ろすと、入力しているものはキーボードです。より適切なUIが必要だと思います。また、これらのキーの入力は、上部のUIのものにどのようにマップされますか? –

+0

Netbeans IDEを使用している場合は、これを実行するのはかなり簡単です! – Johnydep

答えて

3

私はあなたが欲しいものを模倣しようとしていた、私はあなたが望んでいたものに少し近づいてきたように思える、コードを見て、イメージを持っている:

import java.awt.*; 
import javax.swing.*; 

public class MakingLayout extends JFrame 
{ 
    public MakingLayout() 
    { 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLocationRelativeTo(null); 

     JPanel contentPane = new JPanel(); 
     contentPane.setLayout(new BorderLayout()); 

     JPanel leftPanel = new JPanel(); 
     JLabel leftLabel = new JLabel("Output : ", JLabel.CENTER); 

     leftPanel.add(leftLabel); 

     JPanel centerPanel = new JPanel(); 
     centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS)); 

     JLabel centerFirstLabel = new JLabel("Google Inc.", JLabel.LEFT); 
     JLabel centerSecondLabel = new JLabel("Price : 618.405", JLabel.LEFT); 
     JLabel centerThirdLabel = new JLabel("<html>Change : <font color = red>-4.06 (-0.65%)</font> </html>", JLabel.LEFT); 
     JLabel centerFourthLabel = new JLabel("Divident : 0.00", JLabel.LEFT); 
     JLabel centerFifthLabel = new JLabel("Market Cap : 200.38", JLabel.LEFT); 
     JLabel centerSixthLabel = new JLabel("Stock Exchange : NasdaqNM", JLabel.LEFT); 

     centerPanel.add(centerFirstLabel); 
     centerPanel.add(centerSecondLabel); 
     centerPanel.add(centerThirdLabel); 
     centerPanel.add(centerFourthLabel); 
     centerPanel.add(centerFifthLabel); 
     centerPanel.add(centerSixthLabel); 

     JPanel bottomPanel = new JPanel(); 
     bottomPanel.setLayout(new GridBagLayout()); 
     GridBagConstraints gbc = new GridBagConstraints(); 
     gbc.gridx = 1; 
     gbc.gridy = 0; 
     gbc.fill = GridBagConstraints.HORIZONTAL; 
     gbc.weightx = 1.0; 
     gbc.weighty = 0.1; 
     gbc.anchor = GridBagConstraints.PAGE_START; 
     JLabel bottomLabel = new JLabel(" Input : ", JLabel.LEFT); 

     JPanel digitPanel = new JPanel(); 
     JButton[] button = new JButton[10]; 
     for (int i = 0; i < 10; i++) 
     { 
      button[i] = new JButton("" + i); 
      digitPanel.add(button[i]); 
     } 

     JPanel topLinePanel = new JPanel(); 
     JButton[] buttonTop = new JButton[11]; 
     buttonTop[0] = new JButton("Q"); 
     buttonTop[1] = new JButton("W"); 
     buttonTop[2] = new JButton("E"); 
     buttonTop[3] = new JButton("R"); 
     buttonTop[4] = new JButton("T"); 
     buttonTop[5] = new JButton("Y"); 
     buttonTop[6] = new JButton("U"); 
     buttonTop[7] = new JButton("I"); 
     buttonTop[8] = new JButton("O"); 
     buttonTop[9] = new JButton("P"); 
     buttonTop[10] = new JButton("DEL"); 
     for (int i = 0; i < 11; i++) 
     { 
      topLinePanel.add(buttonTop[i]); 
     } 

     JPanel middleLinePanel = new JPanel(); 
     JButton[] buttonMiddle = new JButton[10]; 
     buttonMiddle[0] = new JButton("A"); 
     buttonMiddle[1] = new JButton("S"); 
     buttonMiddle[2] = new JButton("D"); 
     buttonMiddle[3] = new JButton("F"); 
     buttonMiddle[4] = new JButton("G"); 
     buttonMiddle[5] = new JButton("H"); 
     buttonMiddle[6] = new JButton("J"); 
     buttonMiddle[7] = new JButton("K"); 
     buttonMiddle[8] = new JButton("L"); 
     buttonMiddle[9] = new JButton("RET"); 
     for (int i = 0; i < 10; i++) 
     { 
      middleLinePanel.add(buttonMiddle[i]); 
     } 

     JPanel bottomLinePanel = new JPanel(); 
     JButton[] buttonBottom = new JButton[8]; 
     buttonBottom[0] = new JButton("Z"); 
     buttonBottom[1] = new JButton("X"); 
     buttonBottom[2] = new JButton("C"); 
     buttonBottom[3] = new JButton("V"); 
     buttonBottom[4] = new JButton("B"); 
     buttonBottom[5] = new JButton("N"); 
     buttonBottom[6] = new JButton("M"); 
     buttonBottom[7] = new JButton("."); 
     for (int i = 0; i < 8; i++) 
     { 
      bottomLinePanel.add(buttonBottom[i]); 
     } 

     bottomPanel.add(bottomLabel, gbc); 
     gbc.gridy = 1; 
     bottomPanel.add(digitPanel, gbc); 
     gbc.gridy = 2; 
     bottomPanel.add(topLinePanel, gbc); 
     gbc.gridy = 3; 
     bottomPanel.add(middleLinePanel, gbc); 
     gbc.gridy = 4; 
     bottomPanel.add(bottomLinePanel, gbc); 

     contentPane.add(leftPanel, BorderLayout.WEST); 
     contentPane.add(centerPanel, BorderLayout.CENTER); 
     contentPane.add(bottomPanel, BorderLayout.PAGE_END); 

     setContentPane(contentPane); 
     pack(); 
     setVisible(true);  
    } 

    public static void main(String... args) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       new MakingLayout(); 
      } 
     }); 
    } 
} 

そして、ここでは、の結果でありますコード:

makingLayout

+0

+1 ...いいね! –

+0

@AndrewThompson:ありがとうございました:-) –

+0

ありがとうございました。 –

1

使用Netbeans IDE Form Editor(それがウェブサイト上で本当にレトロに見える、それが今では本当にうれしいです)。私はGridBagLayoutを使用することをお勧めします。私は知っている、それは厄介なコードですが、Netbeanのフォームエディタを使用すると、あなたがそれを掛けたときに簡単かつ強力です。

topPanel: 
-leftPanel: 
--outputLable 
-rightPanel: 
--companyLable 
--priceLabel 
--changeLabel 
--dividentLabel 
--marketCapLabel 
--stockExchangeLabel 
bottomPanel: 
-panel1: 
--inputLabel 
-panel2: 
--0Label 
--1Label 
--etc... 
-panel3: 
--qLabel 
--wLabel 
--etc... 
-panel4: 
--etc... 
-panel5: 
--etc... 

ボタンのラベルには、指定したイメージから割り当てるイメージアイコンがあります。 (イメージのサイズを変更するための良い方法が必要な場合は、私のウェブサイトhereで私のメソッドを見ることができます。私はこれで一番良いと主張しませんが、GUIはかなり良い扱いをしていますフォームエディタ、笑)、その方法は最高ではないかもしれませんが、それは私のためにはうまくいきます:)がんばろう!

関連する問題