如何在 class 扩展 JPanel 中绘制带有文本的圆角矩形
How to draw a roundedRectangle with text inside a class extending JPanel
我是 Java 的新手,我正在尝试扩展 JPanel 的 class。我有一个 updateView() 方法,它假设在 JPanel 的中间绘制带有文本的圆角矩形。另外,我需要在 LinkedHashMap 中存储文本字段和圆角矩形。我已经为此得到了一个 var,我只是不知道 我需要使用的 var 类型。
我已经搜索了一段时间的解决方案,但我找到的所有答案要么对我来说太复杂,要么就是不适用于我的情况。
我知道这几乎什么都没有,但这是我到目前为止得到的...
package game;
import javax.swing.JPanel;
public class GameNumView extends JPanel
{
private Map<Integer,Integer> backgroundText = new LinkedHashMap<"My rounded rectangle","My textfield">();
public GameNumView()
{
}
public void UpdateView(String[] pNumbers)
{
//Create the background
//Create the text
}
}
我会给你正确的道路。您可以根据现有代码对其进行调整。
想法是将 Graphics 对象与扩展的 class JPanel 的 paintComponent 方法一起使用。
这是代码,我认为已经足够清楚了,但是如果您有任何问题,请不要犹豫。
MyFrame class :
public class MyFrame extends JFrame {
public MyFrame(){
this.setTitle("Hello");
this.setSize(200, 200);
this.setLocationRelativeTo(null);
MyPanel pan = new MyPanel();
pan.setBackground(Color.ORANGE);
this.setContentPane(pan);
this.setVisible(true);
}
public static void main(String[] args) {
MyFrame f = new MyFrame();
}
}
这是我的面板 class :
public class MyPanel extends JPanel{
@Override
public void paintComponent(Graphics g) {
g.setColor(Color.black);
g.drawRoundRect(10, 10, this.getWidth()-20, this.getHeight()-20, 15, 15);
g.setColor(Color.black);
g.drawString("Hello", 75, 75);
}
}
这是一张你应该拥有的照片:
我是 Java 的新手,我正在尝试扩展 JPanel 的 class。我有一个 updateView() 方法,它假设在 JPanel 的中间绘制带有文本的圆角矩形。另外,我需要在 LinkedHashMap 中存储文本字段和圆角矩形。我已经为此得到了一个 var,我只是不知道 我需要使用的 var 类型。
我已经搜索了一段时间的解决方案,但我找到的所有答案要么对我来说太复杂,要么就是不适用于我的情况。
我知道这几乎什么都没有,但这是我到目前为止得到的...
package game;
import javax.swing.JPanel;
public class GameNumView extends JPanel
{
private Map<Integer,Integer> backgroundText = new LinkedHashMap<"My rounded rectangle","My textfield">();
public GameNumView()
{
}
public void UpdateView(String[] pNumbers)
{
//Create the background
//Create the text
}
}
我会给你正确的道路。您可以根据现有代码对其进行调整。
想法是将 Graphics 对象与扩展的 class JPanel 的 paintComponent 方法一起使用。
这是代码,我认为已经足够清楚了,但是如果您有任何问题,请不要犹豫。
MyFrame class :
public class MyFrame extends JFrame {
public MyFrame(){
this.setTitle("Hello");
this.setSize(200, 200);
this.setLocationRelativeTo(null);
MyPanel pan = new MyPanel();
pan.setBackground(Color.ORANGE);
this.setContentPane(pan);
this.setVisible(true);
}
public static void main(String[] args) {
MyFrame f = new MyFrame();
}
}
这是我的面板 class :
public class MyPanel extends JPanel{
@Override
public void paintComponent(Graphics g) {
g.setColor(Color.black);
g.drawRoundRect(10, 10, this.getWidth()-20, this.getHeight()-20, 15, 15);
g.setColor(Color.black);
g.drawString("Hello", 75, 75);
}
}
这是一张你应该拥有的照片: