小编alx*_*cyl的帖子

删除JPanel中的JPanel ...在JPanel中

我正在尝试使用NetBeans在Java中创建类似幻灯片的应用程序.

我有一个JFrame(主窗口),里面有两个按钮(后退和下一个)用于导航,JPanel(mainPanel)作为应用程序"幻灯片"的持有者.我也使用自定义的JPanel(SlidePanel)对象,然后放在其中mainPanel.其中一些SlidePanel对象中包含JPanel.

现在,我已经能够将这些SlidePanel对象放入其中mainPanel并进行导航(例如,如果我单击下一个按钮,SlidePanel 1将替换为SlidePanel 2,或者如果我单击后退按钮,SlidePanel 2将被替换为SlidePanel 1.)我' VE通过这样做removeAll(),revalidate()repaint()方法.

问题从这里开始.第三个SlidePanel对象里面包含一个JPanel.当你到达第三个时会发生什么SlidePanel,它运作正常.但是从那里开始,如果你单击后退按钮(它会带你回到SlidePanel 2),JPanel会SlidePanel 3保留在屏幕上,里面的组件会被SlidePanel 2调整为适合mainPanel.

我该怎么做才能解决这个问题?

编辑:非常感谢所有回答的人.我在一个虚拟项目上尝试过CardLayout,它工作正常.现在,我所要做的就是将其添加到原始版本中.再次感谢.:)

java swing jpanel

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

我如何对ArrayList进行排序?

我有一个类ArrayList的多个实例ElementClass.里面ElementClass是一个名为的方法getCounter(),它返回counter该类中变量的值.这个变量只能有0,12作为它的值.

我需要ArrayList根据方法getCounter()返回的值按升序对这些条目进行排序.我怎么能做到这一点?我尝试研究几种方法,但我发现的所有方法都需要设置一个值.例如:

list[i + 1] = temp

但是ArrayLists不允许设置值.例如:

ArrayList<ElementClass> temp = list.get(i);
list.get(i + 1) = temp;
Run Code Online (Sandbox Code Playgroud)

由于错误,上面的代码不允许我编译.ArrayLists只允许在列表末尾添加项目(通过.add(item)方法)并从特定索引中删除项目(通过该.remove(index)方法).

如何仅使用add()remove()方法完成排序?或者是否有另一种方法在Java中对ArrayLists进行排序?

java sorting arraylist

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

包含数据的全局静态类

我希望有一个静态类,可以容纳不同类型的数据(如目录,值等).我尝试过使用namespaces但是namespace不允许使用成员变量,我需要保存数据(如果我错了,请纠正我).

我正在试图做的是保存一些常量整个程序使用- scalingFactorscreenSize仅举几例.然后,我希望这些数据由程序的所有部分共享.像这样的东西:

在Foo.cpp中:

void doSomething( float p_Float ) {
   printf( "Scaled Float is %.2f", p_Float * Globals.scalingFactor );
}
Run Code Online (Sandbox Code Playgroud)

在Goo.cpp中:

void doSomethingElse( ) {
   printf( "Scaling Factor is %.2f", Globals.scalingFactor );
}
Run Code Online (Sandbox Code Playgroud)

scalingFactor应该是指相同的值,价值scalingFactor在全球静态类Globals.

提前致谢.

编辑:我还需要使用全局函数,它是否与此问题中的变量一样工作?

c++ oop class

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

删除向量中的对象

我试图删除对象向量中的元素.向量中填充了实例,Object并且在某些时候,我想删除向量中的某个元素而不是索引,而是删除元素本身.

一个简单的例子是:

std::vector< string > strVector;
strVector.push_back( "abc" );
strVector.push_back( "def" );
strVector.push_back( "ghi" ); // So strVector should contain "abc", "def", and "ghi"
Run Code Online (Sandbox Code Playgroud)

如何从该向量中删除"ghi"?请注意,我不知道该向量中的"ghi"在哪里.

// Something like this. Assume strVector = [ "abc", "cba", "ccb", "bac", "aaa" ]
strVector.removeElement( "ccb" );
Run Code Online (Sandbox Code Playgroud)

我正在研究的一个更相关的例子:

class MyClass {
   std::vector< Object > myObjVector;
   void main( ARGS ) {
      for ( int i = 0; i < 10; i++ ) {
         Object myObject = Object( );
         myObjVector.push_back( myObject );
      }

      int j …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×2

java ×2

arraylist ×1

class ×1

jpanel ×1

oop ×1

sorting ×1

swing ×1