小编A-S*_*-SM的帖子

如何在Java中完全隐藏超类方法

最近我正在考虑制作自己的日期库.我在这里发现了一个问题,这里是:

如何在子类中隐藏超类方法?所以它不会在子类中被检测到.

示例:我有一个扩展到Date的类,以及一个扩展到上一个类的另一个类.在我的新子类中,它检测来自Date的所有方法,比如getDate等.我想要的是,在我的子类中,来自Date的所有方法都未被检测到,没有抛出异常,但完全未被发现.

提前致谢 :)

java

13
推荐指数
4
解决办法
8141
查看次数

来自另一个没有继承的类的Java覆盖方法

我在这里发现了一个类似的问题:
在Java中没有子类化的覆盖方法

但我的有点不同,我有两个类,一个基于GUI,另一个只是修改第一类元素的方法.如果它只是编辑基本函数,我没有遇到任何问题,但现在我想从第二个类中覆盖第一类方法中的jbutton而不继承它.我在哪里开始?

我有临时解决方案,第二个类扩展JButton,覆盖我想要的方法,并将该类添加到我的GUI类(匿名对象与否,无所谓).但我想找到一种方法来找到解决问题的方法,甚至可能吗?谢谢 :)

编辑
这里的示例代码:

第一类,因为它只是jframe中的一个按钮,我只在构造函数中添加这些:
ButtonOverrider bo=new ButtonOverrider();- >这是重载类
button=bo.overridePaintComponent(bo);//首先尝试
button=bo.overridePaintComponent();//第二次尝试
bo.overridePaintComponent(bo);//第三次尝试

这是ButtonOverrider方法:

public JButton ButtonOverrider(JButton button) {
  button = new JButton() {
    @Override
    protected void paintComponent(Graphics g) {
      Graphics2D g2 = (Graphics2D) g.create();
      GradientPaint gp = new GradientPaint(0, 0,
      Color.blue.brighter().brighter(), 0, getHeight(),
      getBackground().darker().darker());

      g2.setPaint(gp);
      g2.fillRect(0, 0, getWidth(), getHeight());
      g2.dispose();

      super.paintComponent(g);
      super.setContentAreaFilled(false);
      super.setFocusPainted(false);
      super.setBorder(new LineBorder(Color.yellow, 2));
      super.setText("Shuro");
    }
  };
  return button;
}
Run Code Online (Sandbox Code Playgroud)

java overriding

4
推荐指数
1
解决办法
8506
查看次数

在Enter Key上获取JTextArea当前行文本

嗯,这可能是一个小问题,但我无法理解.
当我按下Enter键时,我希望我的程序在当前光标位置显示文本.
这是我目前的代码:

if (evt.getKeyCode() == 10) {
  try {
    int offset=ta.getLineOfOffset(ta.getCaretPosition());
    int start=ta.getLineStartOffset(offset);
    int end=ta.getLineEndOffset(offset);

    System.out.println("ext: "+ta.getText(start, end));

  } catch (BadLocationException ex) {
    System.out.println(ex.getMessage());
  }
}  
Run Code Online (Sandbox Code Playgroud)

它仅在我第一次按下Enter键时起作用,下次按下它时,它会抛出异常"无效位置".
有更好的方法吗?

java swing document caret jtextarea

2
推荐指数
1
解决办法
1952
查看次数

标签 统计

java ×3

caret ×1

document ×1

jtextarea ×1

overriding ×1

swing ×1