gpt4 book ai didi

java - 如何在 JTextField 中添加单词标签?

转载 作者:行者123 更新时间:2023-11-30 06:16:47 26 4
gpt4 key购买 nike

我正在创建 Java Swing 应用程序。我想向 JTextField 添加标签。当我添加标签时,我可以搜索另一个要添加的标签。与堆栈溢出相同。

是否有任何 jar 文件可以做到这一点?请告诉我是否还有其他解决方案。

example image tag http://imageshack.com/a/img674/925/kQRLxw.jpg

最佳答案

基本上您需要将 2 个 jlables 添加到一个面板,然后将该面板添加到另一个面板。

我创建了一个名为“Tagpanel”的自定义面板,并将新的 TagPanel 添加到面板。

这就是它的样子。你应该根据你的情况使用适当的布局。

enter image description here

示例代码

public class Example extends JFrame {

static Example example;
JPanel panel;

String tagarr[] = {"swing", "java", "c++", "awt"};

public Example() {
setSize(new Dimension(500, 80));
GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setLayout(layout);
c.gridx = 0;
c.gridy = 0;

panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 20));
panel.setLayout(new FlowLayout(1, 2, 2));
panel.setBackground(Color.white);
panel.setBorder(javax.swing.BorderFactory.createLineBorder(Color.magenta));
add(panel,c);
JTextField t = new JTextField("type here", 10);
t.setBorder(null);
t.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
tagcheck(evt);
}

private void tagcheck(KeyEvent evt) {
String s = t.getText();
if (s.length() > 0) {
for (String tag : tagarr) {
if (s.equals(tag)) {
TagPanel tagp1 = new TagPanel(s);
panel.add(tagp1, panel.getComponentCount() - 1);
t.setText("");
repaint();
revalidate();
}
}
}
}
});

panel.add(t);
setVisible(true);
}

public void removecomp(JPanel p) {
panel.remove(p);
repaint();
revalidate();
}

public static void main(String[] args) {
example = new Example();
}
}

标签面板.java

public class TagPanel extends JPanel {

public TagPanel(String text) {
JLabel textlable = new JLabel(text);
JLabel close = new JLabel("X");
close.setOpaque(true);
close.setBackground(new Color(123, 123, 123));
textlable.setOpaque(true);
textlable.setBackground(new Color(0,185,203));
textlable.setForeground(Color.white);
setLayout(new BorderLayout());
close.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
Example.example.removecomp(TagPanel.this);
}
});
add(close, BorderLayout.EAST);
add(textlable, BorderLayout.WEST);
}

}

关于java - 如何在 JTextField 中添加单词标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26695671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com