EDIT:コードを更新しましたが、今度はdrawStringを上書きします。文字列をリストに表示する方法は?
テキストフィールドで何かを言うたびに、drawStringからの入力を15px低く表示することはできません。あなたが入力したすべての文字列をeatchotherの下に表示するにはどうすればよいですか?
(JAVAに新しいイム)事前のおかげで...あなたのpaintComponent(Graphics g)
メソッド内
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class paneel extends JPanel {
private static final long serialVersionUID = 1L;
private JTextField invoer;
private JButton knop;
//private String item1;
private item item;
int y = 50;
public paneel() {
setLayout(null);
item = new item();
//item1 = "";
item.setItem("");
invoer = new JTextField(10);
invoer.setBounds(50, 25, 150, 20);
knop = new JButton("Voeg toe");
knop.addActionListener(new invoerVakHandler());
knop.setBounds(225, 25, 125, 20);
add(invoer); add(knop);
}
class invoerVakHandler implements ActionListener {
public void actionPerformed (ActionEvent e) {
String item1 = invoer.getText();
invoer.setText("");
item.setItem(item1);
repaint();
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Font font = new Font("Verdana", Font.BOLD, 15);
g.setFont(font);
y += 35;
g.setColor(Color.BLACK);
g.drawRect(50, 75, 300, 400);
g.drawString(String.format("- %s", item.getItem()), 100, y);
}
}
あなたの 'y'がローカル変数であるため、' y - = 15'はむしろ奇妙です。詳細は 'y'のインスタンス変数が必要です。https://www.cs.umd .edu /〜clin/MoreJava/Objects/local.html(例えば) –
あなたはテスト可能なサンプルを投稿できますか? –
* "リストに文字列を表示する方法" * ['DefaultListModel']で' JList'を使用する(http://docs.oracle.com/javase/8/docs/api/javax/swing/ DefaultListModel.html)。適切なレイアウト/制約を持つ 'JPanel'の' JScrollPane'にリストを表示します。新しい 'String'を追加する場合は、' DefaultListModel.addElement(Object) 'を呼び出します。カスタムペイントよりも簡単で、はるかに堅牢です。脇の下として:より良い助けを早く得るために、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 @FastSnail * "testable example" *コメント内の '[mcve]'は[mcve]に自動的に展開されます。 –