在面板中设置标签布局

时间:2015-08-30 21:37:00

标签: java swing jpanel jlabel layout-manager

在我的相框中,我正在通过面板中的for添加标签。我无法解决的问题是,它是在同一行添加标签,而我想在一个和另一个之间添加\ n,以生成一个列!我不知道怎么做。任何帮助?谢谢!

1 个答案:

答案 0 :(得分:2)

我认为密钥将是持有JLabel的容器的布局。如果为该容器提供正确的布局,例如沿着PAGE_AXIS定向的BoxLayout,或者对于具有可变行数的一列的 PFUser *pfUser1 = [PFUser new]; pfUser1.objectId = @"qvFwzbBGky"; pfUser1.phone = @"123"; PFUser *pfUser2 = [PFUser new]; pfUser2.objectId = @"bar"; pfUser2.phone = @"987"; NSArray *allUsers = @[ pfUser1, pfUser2 ]; Person *person = [Person new]; person.phoneNumber = @"123"; NSArray *anotherArray = @[ person ]; __block BOOL found; __block PFUser *foundedPFUser; [anotherArray enumerateObjectsUsingBlock:^(Person *obj, NSUInteger idx, BOOL *stop) { NSArray *result = [allUsers filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"%K contains[c] %@", @"phone", obj.phoneNumber]]; if(result.count){ found = YES; foundedPFUser = result.firstObject; *stop = YES; } }]; NSLog(@""); ,那么JLabel将堆叠一个在另一列之上。

如,

  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      __block PFUser *foundedPFUser;
      NSMutableArray *realResult   = [NSMutableArray new];
      [self.tableData enumerateObjectsUsingBlock:^(Person *obj, NSUInteger idx, BOOL *stop) {
          NSArray *result = [self.allUsers filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"%K contains[c] %@", @"phone", obj.number]];
          if(result.count){
              [realResult addObjectsFromArray:result];
          }
      }];

      NSLog(@"%@",realResult);
  }

另一个想法是使用JList来显示字符串而不是堆叠的JLabel。