如何使用变量将JTextField添加到JPanel到特定位置

时间:2015-07-25 12:42:58

标签: java swing jpanel components jtextfield

我需要将该行与其组件一起附加到JPanel中作为用户单击ADD按钮。所以我想把JTextField组件添加到JPanel中,方法是将它们放到特定的位置。

由于列始终是相同的数字,我只需要增加行号。所以这是我目前尝试的当前代码。

int startRow = 3;
int row = startRow + 2;

textField_1 = new JTextField();
panel_1.add(textField_1, "3, row");//having error in this line
textField_1.setColumns(10); 

startRow = row; 

我在上面的那一行有错误。似乎eclipse没有将行读为整数。

2 个答案:

答案 0 :(得分:2)

我认为你对Java世界还是一个新手。

首先,将带有错误的行更改为:

panel_1.add(textField_1);

.add()只需要1个参数(此时您需要知道)并且必须在添加后放置组件。这是使用布局管理器完成的。

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

我建议您阅读该文章,并查看一些演示。我希望这会有所帮助。

在旁注中,我会为您的组件使用更好的名称,以便更容易找到它们。目前它并不太重要,但是当你制作更大的应用程序时,你很依赖IDE自动完成功能,这有助于了解所谓的内容。从组件类型的缩写版本开始往往是一个好主意,然后是它的目的 - 如果你有一个按钮退出调用它btnExit

答案 1 :(得分:0)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="choose">
  <button class="btn" id="hotelfilter"><i class="fa fa-cutlery"></i>Choose Gastro</button>
  <button class="btn" id="gastrofilter"><i class="fa fa-bed"></i>Choose Hotel</button>
</div>
<div id="hotel">
  <section class="hotel1" id="hotel1">
    <p>Hotel1</p>
  </section>
  <section class="hotel2" id="hotel2">
    <p>Hotel2</p>
  </section>
  <section class="hotel3" id="hotel3">
    <p>Hotel3</p>
  </section>
  <section class="hotel4" id="hotel4">
    <p>Hotel4</p>
  </section>
  <section class="hotel5" id="hotel5">
    <p>Hotel5</p>
  </section>
  <section class="hotel6" id="hotel6">
    <p>Hotel6</p>
  </section>
</div>
<div id="gastro">
  <section class="gastro1" id="gastro1">
    <p>Gastro1</p>
  </section>
  <section class="gastro2" id="gastro2">
    <p>Gastro2</p>
  </section>
  <section class="gastro3" id="gastro3">
    <p>Gastro3</p>
  </section>
  <section class="gastro4" id="gastro4">
    <p>Gastro4</p>
  </section>
  <section class="gastro5" id="gastro5">
    <p>Gastro5</p>
  </section>
  <section class="gastro6" id="gastro6">
    <p>Gastro6</p>
  </section>
</div>
<footer>
  This is the Footer
</footer>

如果您使用默认布局textField_1 = new JTextField(); textField_1.setColumns(10); panel_1.add(textField_1); 只需要1个参数,如果您使用.add()GridBagLayout,那么BorderLayout则参数1是组件,其他是位置