私JTextArea
は特定の位置に欲しいです。LayoutManager
別の s を使用する、まったくLayoutManager
使用しないsetLayout(null)
などsetBounds()
、いくつかのことを試してみました。それで、私は何を間違っていますか?setLocation()
setSize()
はJTextArea
常に高すぎて、 のパラメータを変更しても位置が変わりませんsetBounds()
。
public class textarea extends JPanel {
public static void main(String[] args){
JFrame frame = new JFrame("text area");
textarea content = new textarea();
frame.setContentPane(content);
frame.setLocation(120,70);
frame.pack();
frame.setVisible(true);
frame.setSize(700,500);
}
JPanel PanelForText;
public textarea(){
setBackground(Color.LIGHT_GRAY);
setLayout(new FlowLayout(FlowLayout.CENTER,50,50));
txtArea txt = new txtArea();
PanelForText = new JPanel();
PanelForText.setPreferredSize(new Dimension(500,300));
PanelForText.setBorder(BorderFactory.createEtchedBorder());
PanelForText.add(txt);
add(PanelForText);
}
}
public class txtArea extends JPanel {
boolean textAreaCreated = false;
public txtArea(){
setBackground(Color.WHITE);
setPreferredSize(new Dimension(496, 290));
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.GRAY);
g.fillRect(50, 25, 400, 245);
if (!textAreaCreated)
createTextArea();
}
public void createTextArea() {
JTextArea Text = new JTextArea();
Text.setBounds(500,300,300,300);
Text.setOpaque(false);
Text.setWrapStyleWord(true);
Text.setLineWrap(true);
Text.setBorder(BorderFactory.createLineBorder(Color.RED));
add(Text);
textAreaCreated = true;
}
}
これが私が望むものです:
そして、現在の様子は次のとおりです。
JTextField
s に追加された s を使用するいくつかのチュートリアルを行いましたが、最初に Panel に追加せずに、またはをJPanel
使用できるかどうか疑問に思っていました!JTextField
JTextArea
私が言ったように、「JTextArea
位置を設定する方法」を調べていたところ、使用するように言われましたsetBounds()
。どうやらそれは正しくないようです.. 繰り返しますが、私が知りたいのは、それをより良くする方法だけです。また、私はLayoutManager
s について多くのことを読みましたが、私にとっては、それについて読むだけでなく、それを使用しようとする方が役に立ちます...
JTextArea
行と列でそれを試しましたが、正しい位置にないという事実は変わりませんでした。
私がしたことは(CreateTextAreaメソッドで):
public void createTextArea() {
JTextArea Text = new JTextArea(5,1);
Text.setOpaque(false);
Text.setWrapStyleWord(true);
Text.setLineWrap(true);
Text.setBorder(BorderFactory.createLineBorder(Color.RED));
add(Text);
textAreaCreated = true;
}