4

以下のコードについて助けが必要です。私がやろうとしているのは、TextArea (という名前) のサイズを拡張して、preview最後の 3 つのボタン:algo1と.algo2algo3

コードを何度も変更しようとしましたがalgo1、3 つのボタンすべてではなく、1 つのボタンしか表示されません。またはと何か関係がありますBASELINELEADING?誰かが私が間違っている場所を示してもらえますか? ありがとう。

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

// Create a simple GUI window
public class win {

private static void createWindow() {

   //Create and set up the window. 
   JFrame frame = new JFrame("PDF Denoiser");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

   //My edit
   JPanel panel = new JPanel();
   GroupLayout layout = new GroupLayout(panel);
   panel.setLayout(layout);

   layout.setAutoCreateGaps(true);
   layout.setAutoCreateContainerGaps(true);

   JLabel label1 = new JLabel("Image File");
   JLabel label2 = new JLabel("Destination");
   JLabel label3 = new JLabel("Preview");

   JTextField current = new JTextField();
   JTextField dest = new JTextField();
   JTextArea preview = new JTextArea();

   JButton choose1 = new JButton("Search1");
   JButton choose2 = new JButton("Search2");
   JButton algo1 = new JButton("MDWM");
   JButton algo2 = new JButton("BFMR");
   JButton algo3 = new JButton("Mine");

   //Horizontal arrangement
   layout.setHorizontalGroup(layout.createSequentialGroup()
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent(label1)
            .addComponent(label2)
            .addComponent(label3))
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent(current)
            .addComponent(dest)
            .addComponent(preview))
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent(choose1)
            .addComponent(choose2)
            .addComponent(algo1)
            .addComponent(algo2)
            .addComponent(algo3))
    );

    layout.linkSize(SwingConstants.HORIZONTAL, choose1, choose2, algo1, algo2, algo3);

    //Vertical arrangement
    layout.setVerticalGroup(layout.createSequentialGroup()
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
            .addComponent(label1)
            .addComponent(current)
            .addComponent(choose1))
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
            .addComponent(label2)
            .addComponent(dest)
            .addComponent(choose2))
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent(label3)
            .addComponent(preview)
                .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(algo1)
                    .addComponent(algo2)
                    .addComponent(algo3))))
    );






   //Display the window. 
   frame.setLocationRelativeTo(null); 
   frame.add(panel);
   frame.pack();
   frame.setVisible(true); 
}

public static void main(String[] args) {

   createWindow();

}

}

4

2 に答える 2

1

私はJavaが初めてです。invokeLater ラップを行うにはどうすればよいですか? 例はありますか?ありがとう

run:
java.awt.Rectangle[x=208,y=12,width=82,height=26]
java.awt.Rectangle[x=208,y=12,width=82,height=26]
java.awt.Rectangle[x=208,y=76,width=82,height=26]
java.awt.Rectangle[x=208,y=76,width=82,height=26]
java.awt.Rectangle[x=208,y=76,width=82,height=26]
  • 3 つの JButton すべてが画面上で同じ座標を取得していることを確認します。

意味

System.out.println(algo1.getBounds());
System.out.println(algo2.getBounds());
System.out.println(algo3.getBounds());

戻り値

java.awt.Rectangle[x=208,y=76,width=82,height=26]
java.awt.Rectangle[x=208,y=76,width=82,height=26]
java.awt.Rectangle[x=208,y=76,width=82,height=26]

ここに画像の説明を入力

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

// Create a simple GUI window
public class Win {

    private static void createWindow() {
        //Create and set up the window. 
        JFrame frame = new JFrame("PDF Denoiser");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //My edit
        JPanel panel = new JPanel();
        GroupLayout layout = new GroupLayout(panel);
        panel.setLayout(layout);
        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);
        JLabel label1 = new JLabel("Image File");
        JLabel label2 = new JLabel("Destination");
        JLabel label3 = new JLabel("Preview");
        JTextField current = new JTextField(10);
        JTextField dest = new JTextField(10);
        JTextArea preview = new JTextArea(5, 10);
        final JButton choose1 = new JButton("Search1");
        //choose1.setPreferredSize(new Dimension(80,20));
        final JButton choose2 = new JButton("Search2");
        //choose2.setPreferredSize(new Dimension(80,20));
        final JButton algo1 = new JButton("MDWM");
        final JButton algo2 = new JButton("BFMR");
        final JButton algo3 = new JButton("Mine");
        //Horizontal arrangement
        layout.setHorizontalGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent(label1)
                .addComponent(label2)
                .addComponent(label3))
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent(current)
                .addComponent(dest)
                .addComponent(preview))
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent(choose1)
                .addComponent(choose2)
                .addComponent(algo1)
                .addComponent(algo2)
                .addComponent(algo3)));
        layout.linkSize(SwingConstants.HORIZONTAL, choose1, choose2, algo1, algo2, algo3);
        //Vertical arrangement
        layout.setVerticalGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label1)
                .addComponent(current)
                .addComponent(choose1))
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label2)
                .addComponent(dest)
                .addComponent(choose2))
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent(label3)
                .addComponent(preview)
                .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(algo1)
                .addComponent(algo2)
                .addComponent(algo3)))));
        //Display the window. 
        frame.setLocationRelativeTo(null);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                System.out.println(choose1.getBounds());
                System.out.println(choose1.getBounds());
                System.out.println(algo1.getBounds());
                System.out.println(algo2.getBounds());
                System.out.println(algo3.getBounds());
            }
        });
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                createWindow();
            }
        });
    }
}
  • 話の終わり
于 2013-04-08T08:12:18.233 に答える
0

ボタンをどこに追加したいかわかりませんが、この例を試してください。私はあなたのコードを更新しました, 今あなたはあなたのボタンを見ることができます: ここにボタンがあります: but1 but2 but3

package Core;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

// Create a simple GUI window
public class win {

    private static void createWindow() {

        // Create and set up the window.
        JFrame frame = new JFrame("PDF Denoiser");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // My edit
        JPanel panel = new JPanel();
        GroupLayout layout = new GroupLayout(panel);
        panel.setLayout(layout);

        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);

        JLabel label1 = new JLabel("Image File");
        JLabel label2 = new JLabel("Destination");
        JLabel label3 = new JLabel("Preview");

        JTextField current = new JTextField();
        JTextField dest = new JTextField();
        JTextArea preview = new JTextArea();

        JButton choose1 = new JButton("Search1");
        JButton choose2 = new JButton("Search2");
        JButton algo1 = new JButton("MDWM");
        JButton algo2 = new JButton("BFMR");
        JButton algo3 = new JButton("Mine");

        // Horizontal arrangement
        layout.setHorizontalGroup(layout
                .createSequentialGroup()
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(label1)
                                .addComponent(label2).addComponent(label3))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(current)
                                .addComponent(dest).addComponent(preview))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                                .addComponent(choose1)
                                .addComponent(choose2)
                                .addGroup(
                                        layout.createSequentialGroup().addComponent(algo1).addComponent(algo2)
                                                .addComponent(algo3))));

        layout.linkSize(SwingConstants.HORIZONTAL, choose1, choose2, algo1, algo2, algo3);

        // Vertical arrangement
        layout.setVerticalGroup(layout
                .createSequentialGroup()
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label1)
                                .addComponent(current).addComponent(choose1))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label2)
                                .addComponent(dest).addComponent(choose2))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label3)
                                .addComponent(preview).addComponent(algo1).addComponent(algo2).addComponent(algo3)));

        // Display the window.
        frame.setLocationRelativeTo(null);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {

        createWindow();

    }
}

またはこれを試してください:そしてここに:

お尻1

お尻2

お尻3

package Core;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

// Create a simple GUI window
public class win {

    private static void createWindow() {

        // Create and set up the window.
        JFrame frame = new JFrame("PDF Denoiser");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // My edit
        JPanel panel = new JPanel();
        GroupLayout layout = new GroupLayout(panel);
        panel.setLayout(layout);

        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);

        JLabel label1 = new JLabel("Image File");
        JLabel label2 = new JLabel("Destination");
        JLabel label3 = new JLabel("Preview");

        JTextField current = new JTextField();
        JTextField dest = new JTextField();
        JTextArea preview = new JTextArea();

        JButton choose1 = new JButton("Search1");
        JButton choose2 = new JButton("Search2");
        JButton algo1 = new JButton("MDWM");
        JButton algo2 = new JButton("BFMR");
        JButton algo3 = new JButton("Mine");

        // Horizontal arrangement
        layout.setHorizontalGroup(layout
                .createSequentialGroup()
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(label1)
                                .addComponent(label2).addComponent(label3))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(current)
                                .addComponent(dest).addComponent(preview))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(choose1)
                                .addComponent(choose2).addComponent(algo1).addComponent(algo2).addComponent(algo3)));

        layout.linkSize(SwingConstants.HORIZONTAL, choose1, choose2, algo1, algo2, algo3);

        // Vertical arrangement
        layout.setVerticalGroup(layout
                .createSequentialGroup()
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label1)
                                .addComponent(current).addComponent(choose1))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(label2)
                                .addComponent(dest).addComponent(choose2))
                .addGroup(
                        layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                                .addComponent(label3)
                                .addComponent(preview)
                                .addGroup(
                                        layout.createSequentialGroup().addComponent(algo1).addComponent(algo2)
                                                .addComponent(algo3))));

        // Display the window.
        frame.setLocationRelativeTo(null);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {

        createWindow();

    }
}
于 2013-04-08T08:24:40.667 に答える