右下にボタンを取得しようとしていますが、テキストフィールドは左下を占めていますが、何らかの理由で切り替えが続いています。私はその境界線が馬鹿だと思う。私はJava btwのノブです。ここに私のコードは次のとおりです。Java.Swing BorderLayoutの問題
package textchat;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class window extends JFrame{
public static void main(String[] args)
{
new window();
}
public window()
{
//Window Config
//JFrame frame = new JFrame();
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dm = tk.getScreenSize();
this.setSize(400,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("CALI V1");
this.setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
//this.setLayout(null);
int Width = this.getWidth();
//Panel(s)
JPanel Panel = new JPanel();
Panel.setLayout(new BorderLayout());
JPanel PanelSouth = new JPanel();
JPanel PanelEast = new JPanel();
JPanel PanelWest = new JPanel();
//button
JButton btn = new JButton("SEND");
//Text Area
JTextArea txt = new JTextArea(100 , 100);
txt.setText("TEXT IS HERE");
//Text Field
JTextField fld = new JTextField("Type Here",15);
//Adding to the panel
Panel.add(txt);
PanelSouth.add(PanelEast, BorderLayout.EAST);
PanelSouth.add(PanelWest, BorderLayout.WEST);
PanelEast.add(btn);
PanelWest.add(fld);
//adding to frame
this.add(Panel);
this.add(PanelSouth , BorderLayout.SOUTH);
this.setVisible(true);
}
}
あなたは 'BorderLayout'するPanelSouth''上のレイアウトを設定することはありません。 – resueman
ああ、ありがとう、私はJavaでnoobだと私はそれのようなものを逃した知っていた。とても有難い。 –
1)一般的なJava命名法(命名規則 - 例えば 'EachWordUpperCaseClass'、' firstWordLowerCaseMethod() '、' firstWordLowerCaseAttribute'が 'UPPER_CASE_CONSTANT'でない限り)を学び、一貫して使用してください。 2) 'JTextArea txt = new JTextArea(100,100);'これらの値は幅Xの高さ(ピクセル単位)ではなく、列X行であることに注意してください。 3)すべてのコンポーネントが追加された後は常に 'pack()'を呼び出します。 4)EDT上でGUIを起動する必要があります。そうしないと、予期しない結果が発生します。 –